mysql中的group_concat和limit同用的问题,一个另类思路

在开始之前,我们先了解一下group_concat语法:
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])

很显然,这不是一个常用的语句,甚至于有些老程序员也不没有用过几次,当有需要的时候,难免会砰墙。而和limit同用就是一面高强,因为他们没有办法一起使用,例如下面的用法就是错误的,limit无效。

select group_concat(distinct row1) FROM table1 order by id desc limit 0,10

虽然可以查到结果,但是完全和后面的limit无关。
因为项目需要,试过很多方法,做了很多尝试,大多数人建议用临时表,但是临时表查询并不是很灵活,而且很累赘,最终,作者想到了这样一个办法,供大家参考一下:

SET SESSION group_concat_max_len=1024;
select substring_index(group_concat(distinct row1), ',',8) FROM table1 order by id

配合控制group_concat长度,然后截取,虽然和limit没有关系了,但是却有limit等效的作用,试试看吧!

作者: 阿牛

活出自己的态度,走出自己的人生路。 除注明来源,其他皆为原创文章,转载请注明来源,谢谢。

发表评论

电子邮件地址不会被公开。 必填项已用*标注