MySQL GROUP BY";和过滤器“;

MySQL GROUP BY";和过滤器“;,mysql,sql,group-by,Mysql,Sql,Group By,假设我有这样的疑问: SELECT name, GROUP_CONCAT(number) FROM objects GROUP BY name 它输出: +----------+----------------------+ | NAME | GROUP_CONCAT(NUMBER) | +----------+----------------------+ | false_1 | 2,1 | | false_2 | 3,4

假设我有这样的疑问:

SELECT name, GROUP_CONCAT(number)
FROM objects
GROUP BY name
它输出:

+----------+----------------------+
|  NAME    | GROUP_CONCAT(NUMBER) |
+----------+----------------------+
| false_1  | 2,1                  |
| false_2  | 3,4                  |
| true_1   | 4,3,2,1              |
| true_2   | 2,3                  |
+----------+----------------------+
现在,如何将包含
2和3的行返回为
number

注意:此查询已分组-表有10行,如下所示:

+---------+--------+
|  NAME   | NUMBER |
+---------+--------+
| true_1  | 1      |
| true_1  | 2      |
| true_1  | 3      |
| ...     | ...    |
+---------+--------+

或者,如果要保留名称包含的所有值

SELECT  a.name, GROUP_CONCAT(A.number)
FROM    objects a
        INNER JOIN
        (
          SELECT name
          FROM objects
          WHERE number IN (2,3)
          GROUP BY name
          HAVING COUNT(*) = 2
        ) b ON a.Name = b.Name
GROUP BY a.name

为什么行
true|u 1 | 4,3,2,1
未以其形式返回。另一个问题,但如何计算这些行?还是有更好的解决方案?@Kristian虽然我不确定,但我还是选择子查询。
SELECT  a.name, GROUP_CONCAT(A.number)
FROM    objects a
        INNER JOIN
        (
          SELECT name
          FROM objects
          WHERE number IN (2,3)
          GROUP BY name
          HAVING COUNT(*) = 2
        ) b ON a.Name = b.Name
GROUP BY a.name