易截截图软件、单文件、免安装、纯绿色、仅160KB

mysql中GROUP BY结合GROUP_CONCAT的使用 [转]

http://javeye.javaeye.com/blog/558093
我们知道,group by可以将sql查询结果按照group by后面列进行分类显示。比如:
Sql代码
select
 columnA,columnB 
from
 
table
 
group
 
by
 columnA,columnB  
select columnA,columnB from table group by columnA,columnB
 则查询结果将按照columnA和columnB分类显示。没有显示在group by中的列不能直接作为返回列放在sql语句中,比如如下sql就是不正确的
Sql代码
select
 columnA,columnC 
from
 
table
 
group
 
by
 columnA   
select columnA,columnC from table group by columnA
 由于columnC不在group by的范围之类,所以这样写是不对的,所幸的是,group by支持一些sql 函数的使用,比如SUM,AVG,COUNT等等。这些都比较常用,今天我要记录下的是这个不常用的GROUP_CONCAT。
有一个需求,需要用到group by 才能实现,可是,我同是还需要返回某列的所有结果,(注意,不是做avg,sum等操作,我要枚举这列的所有结果),那么就可以用到GROUP_CONCAT。
举个例子:
我有一张数据库表结构如下:
列名
含义
year
年份
month
月份
volumn
期数
该表存储了某杂志的年份,月份和期数。如果需求对该表内容作如下显示:
2010年12月
第1期  第2期  第3期 第4期
2010年11月
第1期  第2期  第3期 第4期  第5期
2010年10月
第1期  第2期  第3期 第4期
2010年9月
第1期  第2期  第3期 第4期  第5期
2010年8月
第1期  第2期  第3期 第4期 
sql该怎么写呢?按照年份和月份做group by?然后按照年份和月份做倒叙排列?
Sql代码
select
 
year
,
month
 
from
 magazine 
group
 
by
 
year
,
month
 
order
 
by
 
year
 
desc
,
month
 
desc
  
select year,month from magazine group by year,month order by year desc,month desc
 那具体的期数信息就丢了?能不能做group by的时候,还能返回在某个年份year和月份month分组下的所有期数volumn信息?(某个年份+月份下的期数信息是不固定的,只能通过数据库查询才能获得)
该是GROUP_CONCAT上阵的时候了。
Sql代码
selec


相关文档:

Head First PHP MYSQL 学习随笔 1


1) 
安装Apache/2.2.14 和 PHP/5.2.12 之后,重新启动Apache,启动失败。查了一些资料,基本上给出的建议是禁掉Extension。我就装了一个Extesion Mysqli。
修改php.ini 注释掉这一行,果然生效。
[PHP_MYSQLI]
;extension=php_mysqli.dll
安装完mysql,再重新enable这个配置就好了,估计是依赖某些mysql的库。 ......

关于mysql archive存储引擎

政府还有一个让数据库专家摊上更多事情的职能,就是安全控制和数据审计。那些管理着海量数据仓库的企业官员常常得回答诸如“何人何时修改了什么”或者“何人何时查看了什么”这样的提问。那些拥有数以千计的员工,开展着不计其数的业务的企业,每天都会产生出大量的日志记录数据,而且必须将其好好保存 ......

MySQL数据导入导出csv文件命令

MySql数据库导出csv文件命令:
mysql> select first_name,last_name,email from account into outfile 'e:\\output1.csv' fields terminated by ','optionally enclosed by ''lines terminated by '\n';
csv文件效果:



sunny
Grigoryan
lovechoosesun@gmail.com
Jon
Siegal
sun@riliantech.net
Joe
S ......

如何修改mysql root密码?

1、编辑MySQL配置文件:
 windows环境中:%MySQL_installdir%\my.ini //一般在MySQL安装目录下有my.ini即MySQL的配置文件。
linux环境中:/etc/my.cnf
在[MySQLd]配置段添加如下一行:
skip-grant-tables
保存退出编辑。
2、然后重启MySQL服务
windows环境中:
net stop MySQL
net start MySQL
linux环境中 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号