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
相关文档:
我们用Master-Slaves架构解决了读压力比较大的应用,而我们用Master-Master架构解决了单点服务问题,提供了系统的可用性。但是有时我们面临巨大的读数据压力,特别是web系统,又需要解决单点服务的问题,为应用提供足够高的可用性。这时我们就需要将这两种架构结合起来。这就是Master-Master-Slaves架构。结构图如下
Maste ......
一、 分区的概念
二、 为什么使用分区?(优点)
三、 分区类型
四、 子分区
五、 对分区进行修改(增加、删除、分解、 ......
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 ......
Transact_SQL小手册
*******************Transact_SQL********************
--语 句 功 能
--数据操作
SELECT & ......
有一些没有使用数据库中间件的软件可能会碰到在不同的应用场景需要用不同的数据库,这样可能就需要将数据库代码做移植,我这里整理了一些从oracle到mysql的移植过程中的注意事项:
1。sequence生成
可以用类似的东西来做,如下:
create table myseq ( &nb ......