【发布时间】:2014-02-09 14:02:49
【问题描述】:
我想选择将某些内容标记为收藏的用户数量,并且如果当前用户“投票”了,也返回。我的桌子是这样的
CREATE TABLE IF NOT EXISTS `favorites` (
`user` int(11) NOT NULL DEFAULT '0',
`content` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`user`,`content`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
假设我有 3 行包含
INSERT INTO `favorites` (`user`, `content`) VALUES
(11, 26977),
(22, 26977),
(33, 26977);
使用这个
SELECT COUNT(*), CASE
WHEN user='22'
THEN 1
ELSE 0
END as has_voted
FROM favorites WHERE content = '26977'
我希望得到has_voted=1 和COUNT(*)=3 但是
我得到has_voted=0 和COUNT(*)=3。这是为什么?如何解决?
【问题讨论】: