您的位置:首頁技術文章
文章詳情頁

MySQL子查詢的空值問題解決

瀏覽:2日期:2023-08-02 20:12:38

目前數據庫中有三個表

EMPLOYEES表DEPARTMENTS表LOCATIONS表employee_iddepartment_idlocation_idfirst_namedepartment_namestreet_addresslast_namemanager_idpostal_codeemaillocation_idcityphone_numberstate_provincejob_idcountry_idsalarycommission_pctmanager_iddepartment_id#現在要求:#查找公司管理者的last_name。已知manager_id有為null的數據SELECT last_nameFROM employeesWHERE employee_id IN ( SELECT manager_id FROM employees );

這里找出了所有公司管理者的名字(18行數據)。 ? 已知employees中共107行數據 ? 現要查出這18人以外的人,理論上有89人。

#已知manager_id有為null的數據SELECT last_nameFROM employeesWHERE employee_id NOT IN ( SELECT manager_idFROM employees);

可見,查詢結果為空。

原因: 使用not in 的時候,如果not in后面的選項中有null,不會查詢出來任何數據。sql語句本身直接返回false

#舉例SELECT employee_id,last_nameFROM employees WHERE employee_id NOT IN (NULL,101,102);#該語句返回空集

舉例的查詢語句等價于

SELECT employee_id,last_nameFROM employees WHERE employee_id!= NULL AND employee_id!=101 AND employee_id!=102;

WHERE中的條件永遠返回null

null不能參與比較運算符,即與任何數據比較結果都為null,

比較結果分為true、false、null,只有結果為true時候,系統才認為匹配成功并返回記錄,

到此這篇關于MySQL子查詢的空值問題解決的文章就介紹到這了,更多相關MySQL子查詢空值內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
国产综合久久一区二区三区