不确定这是否可能 - 但我正在尝试执行以下操作 有一个包含以下列的表格
vote_id (primary_key)
question_id
user_id
vote_count
这基本上存储了用户对特定问题投票的所有投票
现在,在一个查询中,我是否可以获取总票数并检查特定用户是否已投票。
类似的事情 - 假设 user_id 10
SELECT sum(vote),
(
CASE
WHEN (user_id = 10)
THEN user_id
ELSE NULL
END
) user_id
FROM vote_question
GROUP BY course_question_id
这显然行不通。
我期望的是,如果特定用户投票了 - 他的 user_id 应该与投票计数一起返回 - 如果他没有投票 - 返回 null
谢谢
最佳答案
这将是:
SELECT
SUM(vote),
COUNT(IF(user_id = 10, 1, NULL)) AS has_user_id_10,
FROM
vote_question
GROUP BY
course_question_id
- 如果 id 为 10 的用户投票,则 has_user_id_10
会大于零,否则为零。可能您想要严格的 1
或 0
,然后只需将其替换为
COUNT(IF(user_id = 10, 1, NULL))>0 AS has_user_id_10
关于带求和查询的 MYSQL case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19631389/