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

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

WBOY
WBOYOriginal
2016-06-23 14:19:54824Durchsuche

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 时间;

$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";
	上海	山东2001	5 	6 2002	8 	9 2003	 	10 

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 时间;


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

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

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

Stellungnahme:
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
Vorheriger Artikel:用PHP验证用户邮箱Nächster Artikel:对于php的建站的一些需求