Home > Backend Development > PHP Tutorial > 求助数据库,那个大神能解决

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

WBOY
Release: 2016-06-23 14:19:54
Original
836 people have browsed it

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 时间;
Copy after login
Copy after login

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

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 时间;
Copy after login
Copy after login


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

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

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

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template