где предложение с ненулевыми переменными

Некоторые из приведенных ниже переменных (us1 или sp1..) могут иметь нулевое значение (клиент может не заполнять соответствующие текстовые представления). Как я могу синтаксизировать предложение «где» только с «ненулевыми» переменными; Например, когда 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'

person Fenia Kechagia    schedule 26.10.2014    source источник
comment
Используйте if и создайте запрос динамически.   -  person Elliott Frisch    schedule 26.10.2014
comment
возможный дубликат необязательных аргументов в предложении WHERE   -  person GSerg    schedule 26.10.2014
comment
использовать nvl в вашем запросе?   -  person SMA    schedule 26.10.2014
comment
возможный дубликат необязательных условий WHERE для PHP и MySQL   -  person GSerg    schedule 26.10.2014


Ответы (3)


Запишите условие следующим образом:

WHERE ('sp1' IS NULL OR customer.startPoli1 = 'sp1')
AND ('us1' IS NULL OR customer.username1 = 'us1')
person st mnmn    schedule 26.10.2014

Так:

$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'";
person William Remacle    schedule 26.10.2014

Я думаю - это ошибка в вопросе. Забыли про переменные $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 + "'";
person Community    schedule 26.10.2014