应用场景:
select id,title from book where id>1;#如果有多条数据执行后 会是返回多条(行)数据的
id title
1 小学语文
2 小学数学
3 小学自然
4 中学语文
如果我只需要返回一行,其中包含了所有的id...
这里可以用一下group_concat 这个函数了
用法
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
返回一个连接的字符串
组中值之间的默认分隔符是逗号(,)
如果需要返回的结果是 2,3,4
则可以运用下面的查询语句来查询
select group_concat(id) ids from book where id>1;#结果将会把id用逗号串联成一行2,3,4
select group_concat(id separator '-') ids from book where id>1;#结果 2-3-4
实例1:
将不同分值段的数据分批找出来:
case: SELECT objid FROM SCOTT.SCORES WHERE subject = 1 AND score IN (90,91,92,93,94,95)
我们的策略:把满足条件的做标记,然后再通过对应的标记做分组
参考语句:select fz,group_concat(objid) from ( select objid,if(score>=90,1,if(score>=60,2,if(score<60,3,0)))fz from SCOTT.SCORES )tmp group by fz
详情参考https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_group-concat
评论 (0)