Heim > Backend-Entwicklung > PHP-Tutorial > 求助数据库,那个大神能解决

求助数据库,那个大神能解决

WBOY
Freigeben: 2016-06-23 14:19:54
Original
842 Leute haben es durchsucht

sql 数据库

有一张表 :

id   时间   地区   价格
1    2001   上海    5

2    2001   上海    5 

2    2001   山东    6

3    2002   上海    8

4    2002   山东    9

7    2003   山东    10

8    2003   上海    空



想将它扫描出来放在前台页面成这样


时间   上海   山东
2001    5       6
2002    8       9
2003            10

回复讨论(解决方案)

这个用到存储过程的,不然应该实现不了,除非你知道有几个地区,比如你就上海跟山东这2个地区,那可以用一句弄出来!

看看其他大神有没有好的方法!

CREATE TABLE `mytable` (  id int,  时间 varchar(4),  地区 varchar(50),  价格 decimal);insert into mytable select 1,'2001','上海',    5union allselect 2,'2001','上海',    5 union allselect 2,'2001','山东',    6union allselect 3,'2002','上海',    8 union allselect 4,'2002','山东',    9union allselect 7,'2003','山东',    10union allselect 8,'2003','上海',    null;select * from mytable;select 时间,( case 地区  when '上海' then 价格 else null end)  as '上海',( case 地区  when '山东' then 价格 else null end)  as '山东'from mytablegroup by 时间;
Nach dem Login kopieren
Nach dem Login kopieren

$rs = mysql_query('select * from tbl_name');while($r = mysql_fetch_assoc($rs)) {  $res[$r['时间']][$r['地区']] = $r['价格'];}$t = array_keys(current($res));echo "\t" . join("\t", $t) . "\n";foreach($res as $k=>$r) {  echo $k;  foreach($t as $v) echo "\t{$r[$v]} ";  echo "\n";
Nach dem Login kopieren
	上海	山东2001	5 	6 2002	8 	9 2003	 	10 
Nach dem Login kopieren

CREATE TABLE `mytable` (  id int,  时间 varchar(4),  地区 varchar(50),  价格 decimal);insert into mytable select 1,'2001','上海',    5union allselect 2,'2001','上海',    5 union allselect 2,'2001','山东',    6union allselect 3,'2002','上海',    8 union allselect 4,'2002','山东',    9union allselect 7,'2003','山东',    10union allselect 8,'2003','上海',    null;select * from mytable;select 时间,( case 地区  when '上海' then 价格 else null end)  as '上海',( case 地区  when '山东' then 价格 else null end)  as '山东'from mytablegroup by 时间;
Nach dem Login kopieren
Nach dem Login kopieren


这个就是假设地区是已知的(只要山东与上海2个地区),不具备通用性!

参考这个帖子第4种方法 http://www.cnblogs.com/lhj588/archive/2012/06/15/2550392.html

楼上的方法都不错,学习了

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage