Mis*_*ier 6 mysql limit group-concat
我不知何故需要这个功能,但MySQL目前不支持它.
我正在使用GROUP_CONCAT(CONCAT(...))生成类似xml的东西.
但是当大小超过限制时,xml就会被破坏!
所以我必须以某种方式使它只检索5行!
小智 15
我已经解决了这个问题SUBSTRING_INDEX.
例如:
SELECT SUBSTRING_INDEX(GROUP_CONCAT(Field1 SEPARATOR ','), ',', [# of elements to return])
FROM Table1;
Run Code Online (Sandbox Code Playgroud)
查尔斯回答的一个例子:
基本的:
SELECT GROUP_CONCAT( field ) FROM ( SELECT field FROM table LIMIT 200 )
Run Code Online (Sandbox Code Playgroud)
扩展:
如果结果被缓冲区截断,CAST 会很有用:
SELECT CAST( GROUP_CONCAT( field ) AS CHAR(2048) ) FROM ( SELECT field FROM table LIMIT 200 )
Run Code Online (Sandbox Code Playgroud)
使用临时表/子查询来限制结果?如果没有看到您的查询,就很难为该路线提供可靠的建议。
但是,您可能会发现该group_concat_max_len设置更有用。它控制操作的最大长度GROUP_CONCAT(以字符串长度为单位)。GROUP_CONCAT当您无法限制结果时,请提高它以防止 s 损坏。