【问题标题】:Error while selecting rows in MySQL according to count criteria根据计数标准在 MySQL 中选择行时出错
【发布时间】:2012-04-17 09:40:34
【问题描述】:

我在 MySQL 数据库中有一个表,我想从中选择唯一数量的行。我当前的表有 3 列,分别命名为 user_id、image_id 和 is_like。我需要列出所有 user-id 计数等于 221 的用户。例如,对于特定用户 19,在 user_id 列中,19 的计数必须为 221。我写了以下代码,但它给了我一个错误的答案:

SELECT * FROM `votes` WHERE COUNT(userid)=221 GROUP BY userid

它给了我一个错误

1111 - 组功能的使用无效。

【问题讨论】:

  • 你想达到什么,你的问题是矛盾的。

标签: mysql select count group-by


【解决方案1】:

您的查询应该是

SELECT * FROM `votes` GROUP BY userid HAVING COUNT(userid) = 221

您需要使用HAVING,而不是WHERE

WHERE 子句过滤哪些行被选中。然后对行进行分组,然后为COUNT 函数聚合数字(在userid 列中)。

HAVING 类似于WHERE,只是在计算出COUNT 值之后才会发生。

【讨论】:

  • 按用户 ID 分组根本不会将 COUNT(userid) 设为 221。所以你的查询结果将为空。
【解决方案2】:

我认为您正在寻找的是 HAVING 子句。你可以用谷歌搜索!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 2022-12-16
    相关资源
    最近更新 更多