我在MySQL数据库中有一个表,我想从中选择一个唯一的行数。我当前的表有3列名为user_id,image_id和is_like。我需要列出所有的 用户id的计数等于221的用户。例如,对于特定用户19,在user_id列中计数19必须为221。我编写了以下代码,但它在表单中给出了错误的答案:
SELECT * FROM `votes` WHERE COUNT(userid)=221 GROUP BY userid
它给了我一个错误
1111 - 无效使用群组功能。
答案 0 :(得分:2)
您的查询应该是
SELECT * FROM `votes` GROUP BY userid HAVING COUNT(userid) = 221
您需要使用HAVING
,而不是WHERE
。
WHERE
子句筛选选择的行。然后对行进行分组,然后将数字(userid
列)聚合为COUNT
函数。
HAVING
与WHERE
类似,只是在计算出COUNT
值后才会发生。
答案 1 :(得分:0)
我认为你所寻找的是一个HAVING条款。谷歌可以为你做到这一点!