MySQL GROUP BY“和过滤器”

MySQL GROUP BY“和过滤器”,第1张

概述假设我有这样的查询:SELECT name, GROUP_CONCAT(number) FROM objects GROUP BY name 它输出:+----------+----------------------+ | NAME | GROUP_CONCAT(NUMBER) | +----------+---------------------

假设我有这样的查询:

SELECT name,GROUP_CONCAT(number)FROM objectsGROUP 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作为数字的行?

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

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

[Link to SQLFiddle]最佳答案

SELECT name,GROUP_CONCAT(number)FROM objectsWHERE number IN (2,3)GROUP BY nameHAVING COUNT(*) = 2

> SEE SQLFiddle Demo

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

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.nameGROUP BY a.name

> SEE SQLFiddle Demo 总结

以上是内存溢出为你收集整理的MySQL GROUP BY“和过滤器”全部内容,希望文章能够帮你解决MySQL GROUP BY“和过滤器”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1167787.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存