mysql不会将NULL作为空值进行比较

Adi*_*hah -2 php mysql mysqli

MySQLi不将NULL作为空值进行比较.

就我而言:

if($Id == 1) {
    $cond = " AND my_field != '' ";
} elseif ($Id == 2){
    $cond = " AND my_field = '' ";
}
Run Code Online (Sandbox Code Playgroud)

在执行具有条件的mysql语句时!='',WHERE结果集与=''WHERE条件中的结果集不完全相反.这里!=''声明完美正常.

但是当我把这个条件放在elseif它的工作正常时.

elseif ($Id == 2){
   $cond = " AND my_field IS NULL ";
}
Run Code Online (Sandbox Code Playgroud)

ayn*_*ber 6

NULL与MySQL中的空字符串不同.尝试

"AND (orders.user_id = '' OR orders.user_id IS NULL)"
Run Code Online (Sandbox Code Playgroud)