php---分组函数group_concat()
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)
王滔,王小明男,刘惠女,舒明女
php---分组函数group_concat()的更多相关文章
- mysql分组合并GROUP_CONCAT
		SELECT pid, GROUP_CONCAT(field ORDER BY coder desc) 'msg'from product_field GROUP BY pid 分 ... 
- mysql 字符串函数、分组函数
		字符串函数 1.concat 函数 drop table test;create table test(id int(4), name varchar(10), sex char(2));insert ... 
- oracle 函数 WMSYS.WM_CONCAT  与对应 mysql 函数GROUP_CONCAT的用法
		1.oracle函数 WMSYS.WM_CONCAT的使用 如图,将图1的结果变成图2的结果,使用函数 WMSYS.WM_CONCAT 即可. 查询语句需要配合使用group by select aa ... 
- mysql 函数GROUP_CONCAT(temp.amount SEPARATOR ',')的用法
		mysql 函数GROUP_CONCAT(temp.amount SEPARATOR ',')的用法 使用场景:例如:想要查询用户的最喜欢购买的几种商品,这个时候就需要使用group_concat(字 ... 
- oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数
		花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ... 
- Oracle_SQL函数-分组函数
		分组函数 什么是分组函数 分组函数作用于一组数据,并对一组数据返回一个值 组函数类型:主要有6种 AVG - 平均 COUNT - 计数 MAX - 最大 MIN - 最小 SUM - 求和 STDD ... 
- oracle 10g 学习之多表查询、分组函数(6)
		笛卡尔集 l 笛卡尔集会在下面条件下产生: 省略连接条件 连接条件无效 所有表中的所有行互相连接 l 为了避免笛卡尔集, 可以在 WHERE 加入有效的连接条件. 自连接 select m.las ... 
- 常用分组函数count-avg-sum-max-min
		分组函数也称多行函数,用于对一组数据进行运算,针对一组数据(取自于多行记录的相同字段)只返回一个结果,例如计算公司全体员工的工资总和.最高工资.最低工资.各部门的员工平均工资(按部门分组)等.由于分组 ... 
- ORA-00937:不是单组分组函数_Oracle
		Demo: SELECT USER_ID, USER_NAME, USER_SEX, MAX(USER_AGE), SUM(USER_MONEY) AS USER_MONEY USER_TEL, US ... 
随机推荐
- POJ1780 Code(欧拉路径)
			n位密码,要用尽可能短的序列将n位密码的10n种状态的子串都包括,那么要尽量地重合. 题目已经说最短的是10n + n - 1,即每一个状态的后n-1位都和序列中后一个状态的前n-1位重合. 这题是经 ... 
- CentOS6.4 安装Nagios 并监控端口
			1.下载所需文件nagios-3.4.3.tar.gz,nagios-plugins-1.4.15.tar.gz,nrpe-2.14.tar.gz,sendEmail-v1.56.tar.gz 下载地 ... 
- OI优化开关
			#pragma comment(linker,"/STACK:10240000,10240000")#pragma GCC optimize ("O2") 
- git 远程版本库
			[root@localhost workspace]# cd repos/ [root@localhost repos]# ll 总用量 drwxr-xr-x root root 12月 : hell ... 
- Shell 操作练习
			#! /bin/sh ############################### # -- # # author jackluo # # net.webjoy@gmail.com # ###### ... 
- CSS3选择器(三)之伪类选择器
			伪类选择器对于大家来说最熟悉的莫过于:link,:focus,:hover之类的了,因为这些在平时中是常用到的伪类选择器,那么先和大家一起简单总 结一下CSS中常用的伪类选择器的使用方法,最后把重心放 ... 
- php100 的下拉分页效果
			<?php function _PAGEFT($totle, $displaypg = 20, $url = '') { global $page, $firstcount, $pagenav, ... 
- CVE-2014-4113 windows通杀本地提权0day
			这个0day的发现挺有意思的,是老外CrowdStrike 发现的,被老外监测程序发现显示从WEBSHELL使用Win64.exe来提升权限. 原文地址:http://blog.crowdstrike ... 
- JDBC连接执行 MySQL 存储过程报权限错误:User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted,
			国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ... 
- Xampp 添加 SSL
			我的 XAMPP 没有找到这句话 ,直接添加 extension=php_openssl.dll 大概988行另外,需要配置 httpd-ssl.conf 文件(*\xampp\apache\con ... 
