MySQL选择distinct并确定是否只存在一个user_id

时间:2013-05-07 15:46:49

标签: mysql distinct

我想运行一个查询来显示给定的poll_id是否有一个或多个user_id。

示例1:poll_id 1106对其所有行只有user_id 1。

示例2:poll_id 1106的所有行都有多个user_id 1。

two examples images

使用下面给出的示例,这个PHP代码可以工作:

$sql = "
SELECT 1 
FROM xf_poll_vote
WHERE poll_id='1106'
having count(distinct user_id) > 1";

// execute SQL query and get result 
$sql_result = mysql_query($sql,$connection); 

// format results by row 
while ($row = mysql_fetch_array($sql_result)) { 

    $user_id[] = $row["user_id"];

}

$count = count($user_id);

echo $count;

2 个答案:

答案 0 :(得分:3)

我认为只是一个COUNT / DISTINCT。

SELECT poll_id, CASE WHEN COUNT(DISTINCT user_id) > 1 THEN 'Many' ELSE 'One' END AS ManyOrOne
FROM SomeTable
GROUP BY poll_id

答案 1 :(得分:1)

select 1
from yourTable
where poll_id = @yourPoll_id
having count(distinct user_id) > 1

如果返回任何内容,则poll_id有多个用户。如果没有,只有一个或零个用户