일부 콘텐츠를 즐겨 찾기로 표시 한 사용자의 수를 선택하고 현재 사용자가 "투표"했는지 여부도 반환합니다. 내 표는 내가 has_voted=0
를 얻을이SELECT CASE, COUNT (*)
SELECT COUNT(*), CASE
WHEN user='22'
THEN 1
ELSE 0
END as has_voted
FROM favorites WHERE content = '26977'
내가
has_voted=1
을 얻을 것으로 기대
및 COUNT(*)=3
하지만
를 사용
INSERT INTO `favorites` (`user`, `content`) VALUES
(11, 26977),
(22, 26977),
(33, 26977);
를 포함하는 3 개 행이이
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 ;
말처럼 보인다 COUNT(*)=3
. 왜 그런가요? 그것을 고치는 방법?
이 부울 표현식 결과를 검색하기 위해 MySQL의 기능을 사용의 좋은 예입니다 여기에 당신이해야 할 것입니다. 주어진 문제에 대한 아주 좋은 해결책. 당신의 대답은 훌륭했을 것입니다, 당신은 일하는 해결책을 주었을뿐만 아니라, daker의 실수를 설명했습니다. 내 의견이지만, 최선의 해결책은 내 투표. –
@ThorstenKettner 당신이 가장 환영합니다 ... –