Php 带有NOTNULL变量的where子句

Php 带有NOTNULL变量的where子句,php,mysql,sql,Php,Mysql,Sql,下面的一些变量(us1或sp1..)可能有空值(客户有可能不填写相应的文本视图)。如何将“where”子句的语法设置为仅包含“notnull”变量;例如,当us1不为null且sp1为null时,“where”子句必须为:“where customer.username1='us1'” 提前谢谢 $us1 = $_POST['username1']; $sp1 = $_POST['startPoli1']; SELECT `username1`,`startPoli1`, `finalPoli

下面的一些变量(us1或sp1..)可能有空值(客户有可能不填写相应的文本视图)。如何将“where”子句的语法设置为仅包含“notnull”变量;例如,当us1不为null且sp1为null时,“where”子句必须为:“where customer.username1='us1'” 提前谢谢

$us1 = $_POST['username1'];
$sp1 = $_POST['startPoli1'];

SELECT `username1`,`startPoli1`, `finalPoli1`,`weight1` ,`phone1` 
 FROM customer ,registration1 
 where  customer.startPoli1 = 'sp1' and customer.username1 = 'us1'

以这种方式写入条件:

WHERE ('sp1' IS NULL OR customer.startPoli1 = 'sp1')
AND ('us1' IS NULL OR customer.username1 = 'us1')
像这样:

$us1 = $_POST['username1'];
$sp1 = $_POST['startPoli1'];

$sql = "SELECT `username1`,`startPoli1`, `finalPoli1`,`weight1` ,`phone1` 
 FROM customer ,registration1 where 1=1 ";

if($sp1 != null)
   $sql += "and customer.startPoli1 = 'sp1'";
if($us1 != null) 
   $sql += "and customer.username1 = 'us1'";

我认为,这是一个值得商榷的错误。忘记了$sp1和$us1是变量

$us1 = $_POST['username1'];
$sp1 = $_POST['startPoli1'];

$sql = "SELECT `username1`,`startPoli1`, `finalPoli1`,`weight1` ,`phone1` 
 FROM customer ,registration1 where 1=1 ";

if($sp1 != null)
   $sql += "and customer.startPoli1 = '" + $sp1 + "'";
if($us1 != null) 
   $sql += "and customer.username1 = '" + $us1 + "'";

使用
if
并动态生成查询。在查询中可能重复使用nvl?可能重复