SELECT  pid, 
GROUP_CONCAT(field ORDER BY  coder desc)  'msg'
from   product_field    
GROUP BY  pid

分组加排序

group_concat()函数总结

group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果。
比较抽象,难以理解。

通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来。要返回哪些列,由函

数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定的列进行分组。

group_concat函数应该是在内部执行了group by语句,这是我的猜测。

1.测试语句:SELECT group_concat(town) FROM `players` group by town

结果去查找town中去查找哪些值是一样的,如果相等,就全部列出来,以逗号分割进行列出,如下:

group_concat(town)
 
北京,北京
长沙

2.测试:SELECT group_concat( town )
FROM players
结果:
group_concat(town)
长沙,北京,北京,

上面是否可以证明,group_concat只有与group by语句同时使用才能产生效果? 下面进行了实际测验

3.测试常量对group_concat()的配置影响:
SET @@GROUP_CONCAT_MAX_LEN=4
手册中提到设置的语法是这样的:
SET [SESSION | GLOBAL] group_concat_max_len = val;

两种有什么区别?

SET @@global.GROUP_CONCAT_MAX_LEN=4;
global可以省略,那么就变成了:SET @@GROUP_CONCAT_MAX_LEN=4;

4.使用语句 SELECT group_concat(town) FROM `players`。结果得到:
group_concat(town)
长沙,北京,长沙,北京
结论:group_concat()函数需要与group by语句在一起使用,才能得到需要的效果。
原因可以这样理解:group_concat()得到是属于x组的所有成员(函数里面列参数指定需要显示哪些字段)。x组从哪里来?如

果没有group by进行指定,那么根本不知道group_concat()根据哪个分组进行显示出成员。 所以,像上面没有group by子句

的时候,就显示了长沙和北京。

实际中什么时候需要用到这个函数?
假如需要查询的结果是这样:左边显示组名,右边想显示该组别下的所有成员信息。用这个函数,就可以省去很多事情了。

另外,假如我这样使用:SELECT group_concat( name, sex ) FROM `players` town。意义不大。group_concat()指定一个

列是最好的情况。如果指定了多个列。那么显示结果类似这样:

group_concat(name,sex)
王滔,王小明男,刘惠女,舒明女

http://www.cnblogs.com/wangtao_20/archive/2011/02/23/1961860.html

最新文章

  1. php特殊用法
  2. delphi.数据结构.链表
  3. solr安装笔记与定时器任务
  4. 统计整个Xcode工程代码行数
  5. 一个通用的DAO模型实现增删改查
  6. Linux socket编程应用学习笔记
  7. python2 和python3共存下问题
  8. httpc服务器错误类型大全
  9. python游戏编程——跟13岁儿童学编程
  10. WebBrowser.ExecWB方法
  11. PHP性能优化学习笔记--语言级性能优化--来自慕课网Pangee http://www.imooc.com/learn/205
  12. jQuery的拾色器
  13. angular2 学习笔记 ( 第3方插件 jQuery and ckeditor )
  14. Identity Server 4 - Hybrid Flow - 保护API资源
  15. EF时,数据库字段和实体类不一致问题
  16. There is no getter for property named 'user' in 'class com.jyr.wh.domain.User' 异常
  17. 【POJ 1001】Exponentiation (高精度乘法+快速幂)
  18. Allegro PCB Design GXL (legacy) 从dxf文件中导入板框
  19. Linux学习笔记《六》
  20. 升级my.cnf注意

热门文章

  1. json,pickle
  2. IOS textField(textview)字数判断
  3. H5标签--“data自定义数据”
  4. Python 学习随笔1
  5. this的问题
  6. php编译安装报错:make: *** [sapi/cli/php] Error 1 解决办法
  7. java(2)之前往对象村
  8. xib的UIScrollView自适应高度
  9. c++左值和右值
  10. linkedin开源的kafka-monitor安装文档