簡體   English   中英

如何在WHERE中使用if語句在php中編寫SQL查詢

[英]How to write sql query in php with if statement in 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劑量,則查詢應類似於:

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

那么如何將所有這些整合到一個查詢中呢?

只需創建一個包含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';

這不是最有效的方法,但是可以

您可以在查詢本身中處理它。

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

條件部分將檢查第三個條件是否與$ whoislogged匹配,然后添加id作為條件,否則忽略此條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM