与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语句中执行此操作?
答案 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'";
}