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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537758.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537758.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537758.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python語法特點如注釋規則、代碼縮進、編碼規范等

在Python中,通常包括3種類型的注釋,分別是單行注釋、多行注釋和中文編碼聲明注釋。單行注釋在Python中,使用“#”作為單行注釋的符號。從符號“#”開始直到換行為止,“#”后面所有的內容都作為注釋的內容,并被Python編…

修改android.jar教程,Android修改jar包文件

1、Android studio中新建java文件,取和將要修改的文件相同的文件名,把class文件中代碼復制過去,修改需要改動的代碼2、新建txt文件,將新建的Java文件按照依賴關系將路經添加到新建的txt文件中,被依賴的放在最前面(ps:此…

安卓市場上架總結

安卓上架截圖(不要帶手機外觀) 注意:截圖不能有二維碼小米 至少3張,480*854像素,JPG、PNG格式。騰訊應用寶 請上傳2-5張截圖(尺寸保持一致),單張圖片不超過1M。截圖不能小于320*480像…

android 左右分欄聯動布局,Layout 布局(24 分欄)

基礎布局使用單一分欄創建基礎的柵格布局(:span“0~24”).el-row {margin-bottom: 20px;&:last-child {margin-bottom: 0;}}.el-col {border-radius: 4px;}.bg-purple-dark {background: #99a9bf;}.bg-purple {background: #d3dce6;}.bg-purple-light {background: #e5e9f2…

洛谷P4238 【模板】多項式求逆(NTT)

傳送門 學習了一下大佬的->這里 已知多項式$A(x)$,若存在$A(x)B(x)\equiv 1\pmod{x^n}$ 則稱$B(x)$為$A(x)$在模$x^n$下的逆元,記做$A^{-1}(x)$ 具體的來說的話,就是兩個多項式$A,B$相乘模$x^n$之后,所有次數大于等于$n$的項都…

win10安裝TortoiseGit

TortoiseGit 是Git的可視化工具。所以前提是已經安裝了Git,安裝很簡單一路next。 下載地址,百度搜“TortoiseGit”,一般是第一個。 目前地址是:https://tortoisegit.org/download/ 如果打不開,可以進入騰訊軟件中心…

CF1045G AI robots(動態開點線段樹)

題意 火星上有$N$個機器人排成一行,第$i$個機器人的位置為$x_{i}$,視野為$r_{i}$,智商為$q_{i}$。我們認為第$i$個機器人可以看到的位置是$[x_{i}-r_{i},x_{i}r_{i}]$。如果一對機器人相互可以看到,且它們的智商$q_{i}$的差距不大…

android qq登錄 獲取用戶信息嗎,免登錄 只需要一個QQ號就能獲取QQ頭像和QQ昵稱 獲取QQ用戶信息API...

[PHP] 純文本查看 復制代碼<?php // headerheader("Content-Type:application/json");error_reporting(E_ALL^E_NOTICE^E_WARNING);// 獲取QQ號$qq $_GET["qq"];// 過濾if (trim(empty($qq))) {echo json_encode(array(status > error,msg > 未…

Python3.8安裝 jupyter報錯 NotImplementedError

報錯如下&#xff1a; 原因&#xff1a; 是由于 python3.8 asyncio 在 windows 上默認使用 ProactorEventLoop 造成的&#xff0c;而不是之前的 SelectorEventLoop。jupyter 依賴 tornado&#xff0c;而 tornado 在 window 上需要使用 SelectorEventLoop&#xff0c;所以產生這…

淺析Nginx 正向代理與反向代理

1、正向代理和反向代理的概念 無論是正向代理&#xff0c;還是反向代理&#xff0c;說到底&#xff0c;就是代理模式的衍生版本罷了。我們都學習過代理設計模式&#xff0c;都知道代理模式中有代理角色和被代理角色&#xff0c;為什么這么說&#xff0c;因為這兩個角色對于我們…

pycharm 安裝 jupyter

jupyter可以像筆記一樣&#xff0c;在學習和整理思路時很好。 使用的python是3.7.5版本 windows安裝步驟&#xff1a; cmd 再修改下pip的源&#xff0c;選擇國內&#xff0c;這樣快。 國內pip源: 阿里云 https://mirrors.aliyun.com/pypi/simple/ 廣東 豆瓣https://pypi…

android5.1 sdk version,java - Android SDK version 23.6 - Stack Overflow

Does it support java 8 yet?Eclipse is displaying this as a problem, surely it does support 8 by now? In the release notes for revision 23.6 it says java 7 or higher, does this mean java 8 is included or? Wish theyd be more specific about such details. A…

或成為性能寵兒,榮耀8x Max 驍龍660版首銷在即

今天已經是十一假期的最后一天了&#xff0c;假期馬上就要結束了&#xff0c;雖然這有點讓人遺憾&#xff0c;但是接下來的好消息讓很多人的心情好了不少&#xff0c;那就是10月8日榮耀8x Max驍龍660版本就要在全平臺開售了&#xff0c;這恐怕是節后最開心的事情了。此前&#…

績效考核編寫說明

第一步&#xff1a; 請大家從群文件下載自己的考核表&#xff0c;該表格是季度初填寫的&#xff0c;與實際進度安排有偏差&#xff0c;需要調整&#xff08;見第三步&#xff09; 第二步&#xff1a; 請大家從群文件下載部門考核表&#xff0c;如第四季度該文件名“【預評分】…

android 雙線程等待,在Java/Android中啟動另一個線程之前如何等待線程完成?

在回答您的問題之前&#xff0c;我強烈建議您查看ExecutorServices&#xff0c;例如ThreadPoolExecutor。現在回答你的問題&#xff1a;如果要等待上一個線程完成&#xff0c;在開始下一步之前&#xff0c;您可以在之間添加thread.join()&#xff1a;for(int i 0; i < 10; …

讀書筆記-說服力 讓你的PPT會說話

說服力&#xff1a;讓你的PPT會說話張志 包翔 劉俊前言優秀的幻燈片是內容和形式的完美統一&#xff0c;掌握配色排版特效的技術也很重要&#xff0c;不過對大部分人&#xff0c;這些基礎操作都已經初步掌握了。要進一步提高&#xff0c;技術不是制作高水平PPT的主要障礙&#…

無法訪問com.sun.beans.introspect.PropertyInfo

idea在install或者package項目的時候報錯&#xff1a;無法訪問com.sun.beans.introspect.PropertyInfo 原因是&#xff1a;idea編譯該項目的jdk不是1.8 修復方法&#xff1a; idea---file---project structure 把本地安裝的jdk1.8配置上 再運行問題解決

idea lombok 插件安裝

下載了guns源代碼&#xff0c;idea提示很多方法不存在。后來發現是沒有安裝 lombok 插件。 lombok讓java代碼更加簡潔&#xff0c;具體介紹&#xff1a;https://www.cnblogs.com/heyonggang/p/8638374.html 安裝&#xff1a; File---setting---plugins

怎么把pdf轉換為html,如何將PDF轉換成HTML網頁格式呢?

原標題&#xff1a;如何將PDF轉換成HTML網頁格式呢&#xff1f;現在很多在校程序學生們時常在思考怎么對HTML網頁進行編譯以呈現出想要展現的內容。但是HTML猶如我們外語學習一樣&#xff0c;一個網頁有很多的HTML文件&#xff0c;超文本標記語言文件以.htm(磁盤操作系統DOS限制…

Epson C1100報錯“Service Req E511”的處理方法

2019獨角獸企業重金招聘Python工程師標準>>> 轉載于:https://my.oschina.net/renyuansoft/blog/2231623