SQL 合并多个记录 --GROUP_CONCAT 用法
2010-08-11 17:15
295 查看
例子:
表数据:(SELECT id,title FROM doc)
id title
2 aa
2 cc
3 dd
……
期望返回结果:"aa,cc,dd"
执行语句:SELECT GROUP_CONCAT(title) AS title FROM doc
期望返回结果:"aa,cc"
执行语句:SELECT id,GROUP_CONCAT(title) AS title FROM doc GROUP BY id
这里采用了 GROUP_CONCAT 函数。下面是关于该函数的说明:
该函数返回带有来自一个组的连接的非NULL值的字符串结果。其完整的语法如下所示:
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
示例:
mysql> SELECT student_name,
-> GROUP_CONCAT(test_score)
-> FROM student
-> GROUP BY student_name;
Or:
mysql> SELECT student_name,
-> GROUP_CONCAT(DISTINCT test_score
-> ORDER BY test_score DESC SEPARATOR ' ')
-> FROM student
-> GROUP BY student_name;
在MySQL中,你可以获取表达式组合的连接值。你可以使用DISTINCT删去重复值。假若你希望多结果值进行排序,则应该使用 ORDER BY子句。若要按相反顺序排列,将 DESC (递减) 关键词添加到你要用ORDER BY 子句进行排序的列名称中。默认顺序为升序;可使用ASC将其明确指定。 SEPARATOR 后面跟随应该被插入结果的值中间的字符串值。默认为逗号 (‘,’)。通过指定SEPARATOR '' ,你可以删除所有分隔符。
使用group_concat_max_len系统变量,你可以设置允许的最大长度。 程序中进行这项操作的语法如下,其中 val 是一个无符号整数:
SET [SESSION | GLOBAL] group_concat_max_len = val;
若已经设置了最大长度, 则结果被截至这个最大长度。
表数据:(SELECT id,title FROM doc)
id title
2 aa
2 cc
3 dd
……
期望返回结果:"aa,cc,dd"
执行语句:SELECT GROUP_CONCAT(title) AS title FROM doc
期望返回结果:"aa,cc"
执行语句:SELECT id,GROUP_CONCAT(title) AS title FROM doc GROUP BY id
这里采用了 GROUP_CONCAT 函数。下面是关于该函数的说明:
该函数返回带有来自一个组的连接的非NULL值的字符串结果。其完整的语法如下所示:
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
示例:
mysql> SELECT student_name,
-> GROUP_CONCAT(test_score)
-> FROM student
-> GROUP BY student_name;
Or:
mysql> SELECT student_name,
-> GROUP_CONCAT(DISTINCT test_score
-> ORDER BY test_score DESC SEPARATOR ' ')
-> FROM student
-> GROUP BY student_name;
在MySQL中,你可以获取表达式组合的连接值。你可以使用DISTINCT删去重复值。假若你希望多结果值进行排序,则应该使用 ORDER BY子句。若要按相反顺序排列,将 DESC (递减) 关键词添加到你要用ORDER BY 子句进行排序的列名称中。默认顺序为升序;可使用ASC将其明确指定。 SEPARATOR 后面跟随应该被插入结果的值中间的字符串值。默认为逗号 (‘,’)。通过指定SEPARATOR '' ,你可以删除所有分隔符。
使用group_concat_max_len系统变量,你可以设置允许的最大长度。 程序中进行这项操作的语法如下,其中 val 是一个无符号整数:
SET [SESSION | GLOBAL] group_concat_max_len = val;
若已经设置了最大长度, 则结果被截至这个最大长度。
相关文章推荐
- 关于sql一对多查询多个记录group_concat的用法
- Oracle数据库合并行记录,WMSYS.WM_CONCAT 函數的用法
- group_concat()函数总结(mysql数据库中将某个字段的多条记录合并成一条记录),比较实用
- Oracle数据库合并行记录,WMSYS.WM_CONCAT 函數的用法
- mysql group_concat合并行用法和问题
- Oracle数据库合并行记录,WMSYS.WM_CONCAT 函數的用法
- Oracle数据库合并行记录,【WMSYS.WM_CONCAT】 函數的用法 ----【行列转换】
- sql点滴45—mysql中group_concat用法
- mysql group_concat合并行用法和问题
- SQL+合并多个记录group_concat()、wmsys.wm_concat()
- mysql group_concat合并行用法和问题
- Oracle数据库合并行记录,WMSYS.WM_CONCAT 函數的用法
- mysql中sql语句中常见的group_concat()函数意思以及用法,oracle中与其一样的功能函数是wmsys.wm_concat()
- mysql GROUP_CONCAT用法
- mysql group_concat()函数用法总结
- 查询前几条记录SQL在不同数据库中的用法
- 记录SQL 中的 CASE语句、WITH AS语句 、PARTITION BY语句的用法
- MySQL的行转列、列转行、连接字符串 concat、concat_ws、group_concat函数用法
- MySQL_函数GROUP_CONCAT_合并多行数据到一行
- oracle 函数 WMSYS.WM_CONCAT 的用法 与 mysql 函数GROUP_CONCAT的用法