如何在php中使用if语句在

时间:2015-08-04 08:12:28

标签: php mysql database web where

如何在查询的WHERE部分中使用if语句编写SQL查询?

这是我的sql:

$sql = 'SELECT First, Second, 
           Third,Fifth, Status, Isik_id, Comments, Code
    FROM Persons WHERE  Status = 1 && Third = "'.$whoislogged.'" ORDER BY RAND()  LIMIT 1';

Third = "'.$whoislogged.'"是会话的一个词。

如果$ whoislogged存在并且等于Third,那么查询应该是:

$sql = 'SELECT First, Second, Third,Fifth, Status, Isik_id, Comments, Code
        FROM Persons 
WHERE  Status = 1 && Third = "'.$whoislogged.'" ORDER BY RAND()  LIMIT 1';

但如果$ whoislogged dosent出现,那么查询应该是:

 $sql = 'SELECT First, Second, 
           Third,Fifth, Status, Isik_id, Comments, Code
    FROM Persons WHERE  Status = 1 ORDER BY RAND()  LIMIT 1';

那么如何将所有这些放入一个查询中呢?

2 个答案:

答案 0 :(得分:0)

只需创建一个包含Third语句

的新变量
if ( !empty($whoislogged) ) $third = "AND Third = ". $whoislogged;
else $third = "";

$sql = 'SELECT First, Second, 
           Third,Fifth, Status, Isik_id, Comments, Code
    FROM Persons WHERE  Status = 1 '. $third .' ORDER BY RAND()  LIMIT 1';

这不是最有效的方式,但它有效

答案 1 :(得分:0)

您可以在查询中处理它。

WHERE  Status = 1 and if(Third = "'.$whoislogged.'", Third = "'.$whoislogged.'" , 1=1)

条件部分将检查第三个匹配$ whoislogged如果它是真的然后添加id作为条件否则省略这个条件。