SQL变量

时间:2017-05-25 02:27:57

标签: php sql

How do I perform an IF…THEN in an SQL SELECT? 不同,我问的是PHP变量。

我试图在我的PHP文件上创建一个SQL SELECT语句,可以选择所有人或单个人。

if ( $watch_person == "all") {
  $sql = "SELECT WORK_RECORD
            FROM worklist
         ";
} else {
  $sql = "SELECT WORK_RECORD
            FROM worklist
           WHERE PERSON_NO = '".$watch_person."'
         ";
}

有没有办法在一个SQL语句中执行此操作?

4 个答案:

答案 0 :(得分:0)

您可以按如下方式优化编码。

$sql = "SELECT WORK_RECORD
             FROM worklist WHERE ";
if ( $watch_person == "all") {
   $sql .= " 1=1";
 } else {
   $sql .= "  PERSON_NO = '".$watch_person."' ";
 }

$sql = "SELECT WORK_RECORD
             FROM worklist WHERE ". ($watch_person == "all" ? "1=1" : "PERSON_NO = '".$watch_person."'");

答案 1 :(得分:0)

你可以在if else中使用where语句。

$sql = "SELECT WORK_RECORD
        FROM worklist ". 
        ($watch_person == "all" ? "" : "WHERE PERSON_NO = '".$watch_person."'");

答案 2 :(得分:0)

在条件扩展的地方会更容易。

$sql = "SELECT WORK_RECORD
             FROM worklist WHERE 1=1 ";

if ( $watch_person != "all") 
   $sql .= "  and PERSON_NO = '".$watch_person."' ";

if ( $watch_person2 != "another") 
   $sql .= "  and example = '".$watch_person2."' ";

答案 3 :(得分:0)

我将如何做到这一点:

$sql = "SELECT WORK_RECORD FROM worklist";
if($watch_person != "all"){
    $sql .= " WHERE PERSON_NO = '$watch_person'";
}