MySQL基礎教程之IN的用法詳解

2021-10-06 01:49:33 字數 1373 閱讀 9007

mysql in 語法

in 運算子用於 where 表示式中,以列表項的形式支援多個選擇,語法如下:?1

2where column in (value1,value2,...)

where column not in (value1,value2,...)

當 in 前面加上 not 運算子時,表示與 in 相反的意思,即不在這些列表項內選擇。

in 使用例項

選取 uid 為 2、3、5 的使用者資料:?1

select * from user where uid in (2,3,5)

返回查詢結果如下:

uid    username    password    email    regdate

2    小明    a193686a53e4de85ee3f2ff0576adf01    [email protected]    1278063917

3    jack    0193686a35e4de85ee3f2ff0567adf490    [email protected]    1278061380

5    5idev    a193686a53e4de85ee3f2ff0576adf01    [email protected]    1291107029

in 子查詢?1

select * from article where uid in(select uid from user where status=0)

在這個 sql 例子裡,我們實現了查出所有狀態為 0 的使用者(可能是被禁止)的所有文章。首先通過乙個查詢得到所有所有 status=0 的使用者:?1

select uid from user where status=0

然後將查詢結果作為 in 的列表項以實現最終的查詢結果,注意在子查詢中返回的結果必須是乙個字段列表項。

in 運算子補充說明

in 列表項不僅支援數字,也支援字元甚至時間日期型別等,並且可以將這些不同型別的資料項混合排列而無須跟 column 的型別保持一致:?1

select * from user where uid in(1,2,'3','c')

乙個 in 只能對乙個字段進行範圍比對,如果要指定更多字段,可以使用 and 或 or 邏輯運算子:?1

select * from user where uid in(1,2) or username in('admin','manong')

使用 and 或 or 邏輯運算子後,in 還可以和其他如 like、>=、= 等運算子一起使用。

關於 in 運算子的效率問題

如果 in 的列表項是確定的,那麼可以用多個 or 來代替:?1

select * from user where uid in (2,3,5)

// 等效為:

Python 基礎教程之包和類的用法

python 基礎教程之包和類的用法 建立乙個資料夾filepackage 在filepackage 資料夾內建立 init py 有了 init py filepackage才算是乙個包,否則只是算乙個普通資料夾。在filepackage 資料夾內建立 file.py file.py 如下 12 ...

Mysql 基礎教程

建立乙個資料庫 實質上相當於建立了乙個資料夾。資料夾裡面存放乙個個資料庫檔案。例如 建立乙個名為study的資料庫 create database study 語法 create database 資料庫名稱 查詢當前有多少資料庫時用 show databases 查詢當前使用的哪個資料庫 sele...

mysql基礎教程

再給大家推薦乙個mysql比較好的學習 這裡從淺入深的給大家介紹了,mysql的相關知識,希望對大家有所幫助跟啟發,具體的 是 url url 有關詳細的目錄為 mysql基礎教程 mysql簡介 mysql安裝配置 mysql操作伺服器 mysql基本語法 mysql運算元據庫 mysql資料型別...