mysql函数中的GROUP

62次阅读
没有评论

共计 1938 个字符,预计需要花费 5 分钟才能阅读完成。

这期内容当中丸趣 TV 小编将会给大家带来有关 mysql 函数中的 GROUP_CONCAT 是怎样用的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

mysql 函数之——GROUP_CONCAT
完整句法如下:
GROUP_CONCAT([DISTINCT] expr [,expr …]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col …]]
[SEPARATOR str_val])

这个函数在 MySQL 4.1 中被加入。函数返回一个字符串结果,该结果由分组中的值连接组合而成:
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 子句。为了以倒序排序,可以在 ORDER BY 子句中用于排序的列名后添加一个 DESC (递减 descending) 关键词。缺省为升序;这也可以通过使用 ASC 关键词明确指定。SEPARATOR 是一个字符串值,它被用于插入到结果值中。缺省为一个逗号 (,)。你可以通过指定 SEPARATOR 完全地移除这个分隔符。在你的配置中,通过变量 group_concat_max_len 要以设置一个最大的长度。在运行时执行的句法如下:
SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer;

如果最大长度被设置,结果值被剪切到这个最大长度。GROUP_CONCAT() 函数是一个增强的 Sybase SQL Anywhere 支持的基本 LIST() 函数。如果只有一个列,并且没有其它选项被指定,GROUP_CONCAT() 是向后兼容有极大限制的 LIST() 函数。LIST() 有一个缺省的排序次序。
示例 (译者注):

mysql CREATE TABLE `ta` (
– `id` smallint(5) unsigned NOT NULL default 0 ,
– `name` char(60) NOT NULL default ,
– KEY `id` (`id`)
– ) TYPE=MyISAM;
Query OK, 0 rows affected (0.02 sec)

mysql INSERT INTO `ta` VALUES(1 , a),(1 , b),
– (1 , c),(1 , d),(2 , a),
– (2 , b),(2 , c),(3 , d
Query OK, 8 rows affected (0.03 sec)
Records: 8 Duplicates: 0 Warnings: 0

mysql SELECT * FROM `ta`;
+—-+——+
| id | name |
+—-+——+
| 1 | a |
| 1 | b |
| 1 | c |
| 1 | d |
| 2 | a |
| 2 | b |
| 2 | c |
| 3 | d |
+—-+——+
8 rows in set (0.00 sec)

mysql SELECT `id`,
– GROUP_CONCAT(`name`)
– FROM `ta`
– GROUP BY `id`;
+—-+———————-+
| id | GROUP_CONCAT(`name`) |
+—-+———————-+
| 1 | a c b d |
| 2 | a c b |
| 3 | d |
+—-+———————-+
3 rows in set (0.03 sec)

# SEPARATOR 缺省是一个空格而不是一个逗号

mysql SELECT `id`,
– GROUP_CONCAT(DISTINCT `name`
– ORDER BY `name` DESC SEPARATOR , ) AS Result
– FROM `ta`
– GROUP BY `id`;
+—-+———+
| id | Result |
+—-+———+
| 1 | d,c,b,a |
| 2 | c,b,a |
| 3 | d |
+—-+———+
3 rows in set (0.00 sec)

* 以上结果在 MySQL 4.1 中测试

上述就是丸趣 TV 小编为大家分享的 mysql 函数中的 GROUP_CONCAT 是怎样用的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计1938字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)