繁体   English   中英

MySQL中的IF语句,使用THEN和ELSE

[英]IF Statement in MySQL, using THEN and ELSE

我第一次在MySQL中测试IF语句,遇到一个错误。

我试图首先找出表中有多少行,然后根据计数是否小于或等于五,返回表中的所有行,如果不是,则返回表中的所有帖子LIMIT子句中使用的范围。

我收到的错误如下:

您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的'IF SELECT COUNT(*)FROM Posts <= 5 THEN SELECT * FROM Posts ELSE SELECT * FR'附近使用

请您告诉我我要去哪里了吗?

最高

$query = mysql_query(
    "IF SELECT COUNT(*) FROM `Posts` <= 5 
     THEN 
         SELECT * FROM `Posts` 
     ELSE 
         SELECT * FROM `Posts` LIMIT $from, $limit") 
     or die(mysql_error());

您不需要这样做。 Mysql自动处理此问题,只需使用

$query = "SELECT * FROM `Posts` LIMIT $from, $limit";

MySQL中IF .. THEN .. ELSE语法仅适用于过程代码(存储的程序,函数,触发器..),而不适用于SELECT语句。

而是可以在SELECT查询中使用控制流函数IF()和更详细的CASE WHEN .. THEN .. END 但是,当您实际上要根据条件执行两个不同的查询时,这对您没有帮助。

在您的特殊情况下,我不确定您是否需要这样做:当表中只有五个或更少的帖子时, LIMIT 0,10将为您提供这五个帖子而不会出现错误:

$sql =  "SELECT * FROM Posts LIMIT $from, $limit";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM