MYSQL选择查询与多个条件,如果输入不为空


MYSQL select query with multiple conditions and if input not null

我必须搜索具有多个输入值的多个条件的表,并且只有当输入值不为空时才应该包含在查询中。

php接收像

这样的变量
$username=$_GET["username"];
$uniqueid=$_GET["uniqueid"];
$tag=$_GET["tag"];
$location=$_GET["location"];

变量可能是空的或一些字符串,我想避免变量从查询是空的。

假设没有变量为空,那么我的查询应该是

select NAME from TABLE_NAME where USERNAME=$username AND INIQUEID=$uniqueid AND TAG=$tag AND LOCATION=$location;

如果$username为空,则

select NAME from TABLE_NAME where INIQUEID=$uniqueid AND TAG=$tag AND LOCATION=$location;

所以我需要为每个条件创建不同的查询,或者有任何方法可以一起存在吗?

检查这个,

<?php
$query = "SELECT NAME  FROM TABLE_NAME WHERE ";
$flag = 0;
if(!empty($username)){
   $query .= " USERNAME='$username' ";
   $flag = 1;
}
if(!empty($uniqueid)){
   if($flag == 1){
        $query .= " AND ";
   }
   $query .= " INIQUEID='$uniqueid' ";
   $flag = 1;
}
if(!empty($tag)){
   if($flag == 1){
        $query .= " AND ";
   }    
   $query .= " TAG='$tag' ";
   $flag = 1;
}
if(!empty($location)){
   if($flag == 1){
        $query .= " AND ";
   }     
   $query .= " LOCATION='$location' ";
}
?>