MySQLi沒有將NULL作爲空白值進行比較。mysql沒有將NULL作爲空白值進行比較
在我的情況:
if($Id == 1) {
$cond = " AND my_field != '' ";
} elseif ($Id == 2){
$cond = " AND my_field = '' ";
}
當執行在WHERE
條件的結果集具有!=''
一個MySQL說法是不完全相反的結果集具有WHERE條件=''
。 和這裏!=''
聲明完美地工作正常。
但是,當我把這個條件在elseif
它工作正常。
elseif ($Id == 2){
$cond = " AND my_field IS NULL ";
}
解決方案: ** NULL。每一次。** 任何與NULL,甚至本身進行比較的結果始終爲NULL。與NULL的比較永遠不會是真或假。由於NULL永遠不可能等於任何值,因此它永遠也不會是不相等的。 –