在mysql中,select語句內in常用于where表達式中,其作用是查詢某個范圍內的數據,in查詢的范圍數據并不一定是明確的,可能會包含子查詢語句,語法為“select * from where…in(范圍數據或者子查詢語句)”。
本教程操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。
mysql的select語句中in的用法是什么
一、基礎用法
mysql中in常用于where表達式中,其作用是查詢某個范圍內的數據。
select?*?from?where?field?in?(value1,value2,value3,…)
當 IN 前面加上 NOT 運算符時,表示與 IN 相反的意思,即不在這些列表項內選擇
select?*?from?where?field?not?in?(value1,value2,value3,…)
二、IN 子查詢
更多情況下,IN 列表項的值是不明確的,而可能是通過一個子查詢得到的:
SELECT?*?FROM?article?WHERE?uid?IN(SELECT?uid?FROM?user?WHERE?status=0)
在這個 SQL 例子里,我們實現了查出所有狀態為 0 的用戶(可能是被禁止)的所有文章。首先通過一個查詢得到所有所有 status=0 的用戶:
SELECT?uid?FROM?user?WHERE?status=0
然后將查詢結果作為 IN 的列表項以實現最終的查詢結果,注意在子查詢中返回的結果必須是一個字段列表項。
示例:查詢book表中id為2和4的所有數據:
有book數據表,內容如下:
查詢語句和查詢結果見如下圖示:
推薦學習:mysql視頻教程
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦