6

我有一个名为、和votes列的表。idimage_iduser_idtime

我如何在结果中添加一个布尔值,如果一个特定user_id是每个人的投票之一image_id

SELECT image_id,
count(image_id) as vote_count
FROM votes
GROUP BY image_id 
ORDER BY vote_count DESC

我已经尝试过if(user_id = 18, 1, 0) as have_voted,但它不适用于每个image_id.

4

1 回答 1

15

将你想要的所有行相加user_id,并检查这个总和是否大于 0 怎么样?

SELECT image_id,
count(image_id) as vote_count,
SUM(IF(user_id = 18,1,0)) > 0 AS hasUser18
FROM votes
GROUP BY image_id 
ORDER BY vote_count DESC
于 2013-01-15T14:33:26.000 回答