Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL。。如果计数返回的值大于0,则返回“1”_Mysql_Sql - Fatal编程技术网

MySQL。。如果计数返回的值大于0,则返回“1”

MySQL。。如果计数返回的值大于0,则返回“1”,mysql,sql,Mysql,Sql,我试图创建一个MySQL查询,它本质上返回true或false。我想跑步 SELECT COUNT(id) FROM comments WHERE comment_date >= 1306904400 AND user_id = 1 因此,如果用户本月在论坛上发布了10次,我希望它只返回1,否则我希望它返回0,表示他们没有 这在SQL中是否有效?如果您不介意MySQL特定的东西,那么您可以使用: 或1表示真,0表示假: select count(id) >=

我试图创建一个MySQL查询,它本质上返回true或false。我想跑步

SELECT COUNT(id) 
  FROM comments  
 WHERE comment_date >= 1306904400 
   AND user_id = 1 
因此,如果用户本月在论坛上发布了10次,我希望它只返回1,否则我希望它返回0,表示他们没有


这在SQL中是否有效?

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

或1表示真,0表示假:

select count(id) >= 10
from comments
where comment_date >= 130690440
  and user_id = 1
如果您想坚持使用标准SQL,那么您的朋友是:

select case when count(id) >= 10 then 1 else 0 end
from comments
where comment_date >= 130690440
  and user_id = 1
用例:

也许:

SELECT (SELECT COUNT(id) FROM comments  
WHERE comment_date >= 1306904400 AND user_id = 1) > 10

您不需要计算所有匹配的记录,只需查找是否存在一条即可。不幸的是,MySQL似乎不像Microsoft SQL Server那样支持IF存在。但是,您可以使用带有限制的子选择来伪造它:

SELECT COUNT(1) AS has_comments FROM (SELECT id FROM comments WHERE comment_date >= 1306904400 AND user_id = 1 LIMIT 0, 1) t;

我使用一个限制来做类似的事情,并在代码中计算它。SQL将在找到10个匹配项后停止

SELECT id FROM {mytable}
WHERE comment_date >= 1306904400
AND user_id = 1
LIMIT 10
PHP请求至少10个帖子

if(my_db_query() != 10)
    not_enough_posts();

我知道这是一条古老的线索,但这里有另一种方法来实现这一点:

选择COUNTid,1%1+COUNTid大于零 根据评论 其中注释日期>=1306904400
用户_id=1

选择case when countid>=10然后选择1 else 0 end这个命令对我帮助很大,谢谢
SELECT id FROM {mytable}
WHERE comment_date >= 1306904400
AND user_id = 1
LIMIT 10
if(my_db_query() != 10)
    not_enough_posts();