为了提高性能,我需要为GROUP_CONCAT设置限制,
我需要知道是否包含行。
怎么做?
修改
让我提供一个人为的例子:
create table t(qid integer unsigned,name varchar(30));
insert into t value(1,'test1');
insert into t value(1,'test2');
insert into t value(1,'test3');
select group_concat(name separator ',')
from t
where qid=1;
+----------------------------------+
| group_concat(name separator ',') |
+----------------------------------+
| test1,test2,test3 |
+----------------------------------+
但是现在,我想最多分组2个条目,并且需要知道结果中是否包含一些条目:
+----------------------------------+
| group_concat(name separator ',') |
+----------------------------------+
| test1,test2 |
+----------------------------------+
我需要知道还有另一个条目(在这种情况下是“test3”)
答案 0 :(得分:1)
这应该可以解决问题
SELECT
SUBSTRING_INDEX(group_CONCAT(name) , ',', 2) as list ,
( if(count(*) > 2 , 1 , 0)) as more
FROM
t
WHERE
qid=1
答案 1 :(得分:0)
你打算如何设定限制?它将解决哪些性能问题?
您可以使用count(*)
获取组中的行数,并将其与限制进行比较。