我正在尝试在 MySQL 中执行以下操作:
SELECT DISTINCT field
FROM table
WHERE COUNT(field) > 10
失败:1111 - 组函数的使用无效(据我了解,您不能COUNT
在 where 子句中使用组函数?)
选择(区分)至少N行中存在的所有字段的正确方法是什么?这是我必须在外部使用 PHP 做的事情吗?
谢谢!
我正在尝试在 MySQL 中执行以下操作:
SELECT DISTINCT field
FROM table
WHERE COUNT(field) > 10
失败:1111 - 组函数的使用无效(据我了解,您不能COUNT
在 where 子句中使用组函数?)
选择(区分)至少N行中存在的所有字段的正确方法是什么?这是我必须在外部使用 PHP 做的事情吗?
谢谢!
采用:
SELECT DISTINCT field
FROM table
HAVING COUNT(field) > 10
您不能在WHERE
子句中的子查询之外使用聚合函数。这就是为什么您需要使用该HAVING
子句。还要记住,COUNT
计算非空值......
理想情况下,也应该有一个GROUP BY
子句。但是MySQL 对此比较松懈。
...您将不得不添加一个GROUP BY
列出所有这些列的子句——在这种情况下没有速记。然后将HAVING
子句更改为COUNT(*) > 10
.