MySQL ..如果COUNT返回大于0的任何值,则返回'1'

kim*_*n09 13 mysql sql

我正在尝试创建基本上返回true或false的MySQL查询.我想跑

SELECT COUNT(id) 
  FROM comments  
 WHERE comment_date >= 1306904400 
   AND user_id = 1 
Run Code Online (Sandbox Code Playgroud)

因此,如果用户本月在论坛上发布了10次,我希望它只返回1,否则我希望它返回0表示他们没有.

这可能在SQL中有效吗?

mu *_*ort 26

如果您不介意MySQL特定的东西,那么您可以使用IF:

select if(count(id) >= 10, 1, 0)
from comments
where comment_date >= 130690440
  and user_id = 1
Run Code Online (Sandbox Code Playgroud)

MySQL布尔值(1为真,0为假):

select count(id) >= 10
from comments
where comment_date >= 130690440
  and user_id = 1
Run Code Online (Sandbox Code Playgroud)

如果你想坚持标准的SQL,那么CASE你的朋友是:

select case when count(id) >= 10 then 1 else 0 end
from comments
where comment_date >= 130690440
  and user_id = 1
Run Code Online (Sandbox Code Playgroud)

  • select case when count(id) >= 10 then 1 else 0 end 这个命令对我帮助很大,谢谢 (2认同)

Xin*_*nt0 11

用途CASE:

SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END AS `flag`
FROM `comments`
WHERE `comment_date` >= 1306904400 AND `user_id` = 1
Run Code Online (Sandbox Code Playgroud)