首页 > 解决方案 > mysql: 有后在哪里

问题描述

我有以下帖子表:

+-------------------+
|  name   |  type   |
+---------+---------+
| admin-1 |  type1  |
| user-1  |  type1  |
+-------------------+

我想按类型对帖子进行分组,如果该组有超过 1 个元素,则返回它们,然后根据名称过滤此结果。

这是尝试的查询:

select count(*), type from posts where name like 'admin-%' group by type having count(*) > 1

但是在我的查询中,where在子句“之前”执行group by,所以我没有进入type1我的结果集中。

我怎样才能实现我想要的?

谢谢

标签: mysql

解决方案


尝试嵌套查询

SELECT * FROM posts
WHERE type IN (
    SELECT type FROM posts GROUP BY type HAVING COUNT(*) > 1
) AND name LIKE 'admin-%'

推荐阅读