#1242-子查询返回超过1行-如何在mysql中处理此问题

#1242-子查询返回超过1行-如何在mysql中处理此问题,mysql,Mysql,我有一个类似这样的mysql查询 "select n.message, count(n.id), (select m.id from new2 AS m where m.message = n.message) from new2 as n group by n.message" 在表new2中,我有id和message的组合 我需要得到id和具有相同消息值的id的计数 怎么做 我的桌子的结构是 id message 1 m1 2 m2

我有一个类似这样的mysql查询

"select n.message, count(n.id),
(select m.id from new2 AS m where m.message = n.message)
from new2 as n
group by n.message"
在表new2中,我有id和message的组合

我需要得到id和具有相同消息值的id的计数

怎么做

我的桌子的结构是

       id   message
        1   m1
        2   m2
        3   m3
        4   m1
        5   m2
        6   m2
        7   m1
我需要得到像这样的输出

 message    count(n.id) ids
m1          3           1,4,7
m2          3           2,5,6
m3          1           3

查询中有多行

(select m.id from new2 AS m where m.message = n.message)
使用
LIMIT
避免错误

select n.message, count(n.id),
(select m.id from new2 AS m where m.message = n.message LIMIT 1)
from new2 as n
group by n.message

不需要子查询,您可以使用函数从组中获取所有ID

SELECT n.message, COUNT(n.id), GROUP_CONCAT(n.id)
FROM new2 as n
GROUP BY n.message

这将为您提供一个不同的消息列表,并计算每个消息的数量:

select n.message, count(n.id) from new2 as n group by n.message

你能给出一些结构的虚拟数据吗?id消息1 m1 2 m2 3 m3 4 m1 5 m2 6 m2 7 m1你想做什么?您是要获取给定消息的id,还是要获取表中这些消息的数量?我需要获取消息计数(n.id)id m1 3 1,4,7 m2 3 2,5,6 m3 1 3等输出,但我需要显示具有相同消息值的所有id