日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL not in查询不出数据(MySQL not in 无效)

發布時間:2025/3/11 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL not in查询不出数据(MySQL not in 无效) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天使用 MySQL 的 not in 進行查詢的時候,發現結果里面并沒有返回任何數據。SQL 語句沒有任何問題,但是結果集卻是空,實在無法理解。糾結了半天,最后使用 left join,兩表關聯,找到了目標數據。但是這樣的話,難道 not in 就不能使用了嗎?最后經過查找,找到了原因。

mysql 的 not in 中,不能包含 null 值。否則,將會返回空結果集。

對于 not in 來說,如果子查詢中包含 null 值的話,那么,它將會翻譯為 not in null。除了 null 以外的所有數據,都滿足這一點。所以,就會出現 not in “失效”的情況。

例如:我有兩張表,t_b_handle 和 t_b_detail,兩張表為一一對應關系,兩張表通過 t_b_handle 表中的 detail_id 關聯。現有查詢語句如下:

錯誤 SQL:

select * from t_b_detail where id not in (

????select detail_id from t_b_handle

)

那么,如果 t_b_handle 表中的 detail_id 存在 null 值,那么這個 SQL 語句就是錯誤的。返回的結果集就是空的。

如果出現了這個問題,明明應該有數據,而使用 not in 卻返回了空集,那么我們可以使用下面的 SQL 來避免這種情況的發生:

正確 SQL:

select * from t_b_detail where id not in (

????select detail_id from t_b_handle where detail_id is not null

)

這樣即可解決此問題。
————————————————
版權聲明:本文為CSDN博主「saichaoZhang」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u013913942/article/details/80504100

總結

以上是生活随笔為你收集整理的MySQL not in查询不出数据(MySQL not in 无效)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。