假设以下查询:
SELECT meta_value as xyz, COUNT(*) AS count
FROM wp_postmeta
WHERE meta_key = "xyz" AND meta_value != ""
GROUP BY meta_value
HAVING count > 1
查询工作正常,但我的结果中不需要count
列。如何排除count
列?
我知道我可以使用子查询(如下所示),但我想知道是否有更好的方法。
SELECT xyz FROM (
SELECT meta_value as xyz, COUNT(*) AS count
FROM wp_postmeta
WHERE meta_key = "xyz" AND meta_value != ""
GROUP BY meta_value
HAVING count > 1
) AS t
答案 0 :(得分:3)
HAVING count > 1
正在使用select中的别名计数...所以你可以用H count(*)
替换HAVING子句中的别名(count),并从中删除count(*)和别名选择。因此它变得像
SELECT meta_value as xyz
...
HAVING count(*) > 1
此处的运营顺序至关重要。在select之后工作因此它可以使用select中的别名,或者它可以在执行时运行计数。顺序相同。但是,group by永远不会在同一语句中使用select别名。