簡述where下or的使用特點

簡述where下or的使用特點

數據庫使用爲SQL Server

​ 在sql中 or 的作用是對它前面現有的約束條件做出轉折,相當於一個新的where的開始,有一點就是和and的連用,這裏的and只起到連接約束條件的作用。

我們舉例說明,首先實現查詢:

SELECT
	id,
	login_name,
	organization_id 
FROM
	iam_user

查詢結果:

在這裏插入圖片描述

加上條件查詢

SELECT
	id,
	login_name,
	organization_id 
FROM
	iam_user 
WHERE
	organization_id = 0

這時查出來的就是 organization_id = 0的數據,再加上or判斷

SELECT
	id,
	login_name,
	organization_id 
FROM
	iam_user 
WHERE
	organization_id = 0 
	OR id = 10

這時候我們查的結果就是 organization_id=0的數據加上 id = 10數據的並集去重

我們再去看一個查詢

SELECT
	id,
	login_name,
	organization_id 
FROM
	iam_user 
WHERE
	organization_id = 0 
	AND login_name = 'admin' 
	OR id = 10

結果是

在這裏插入圖片描述

這個很好理解,換個順序

SELECT
	id,
	login_name,
	organization_id 
FROM
	iam_user 
WHERE
	id = 10 
	OR organization_id = 0 
	AND login_name = 'admin'

結果如下

在這裏插入圖片描述

發現結果和上面一樣

再看看SQL我們顛倒了OR的兩邊的條件,結果就還是一樣的

我們只把AND拿下來,

SELECT
	id,
	login_name,
	organization_id 
FROM
	iam_user 
WHERE
	organization_id = 0 
	OR id = 10
	AND login_name = 'admin' 

結果如下:

在這裏插入圖片描述

我們看到and對OR後面的 id = 10起效了。

於是我的理解在不使用OR時,上面的SQL就相當於下面的:

SELECT
	id,
	login_name,
	organization_id 
FROM
	iam_user 
WHERE
	organization_id = 0 
UNION
SELECT
	id,
	login_name,
	organization_id 
FROM
	iam_user 
WHERE
	id = 10 
	AND login_name = 'admin'

結論: OR的開始,就是一個where約束的重新開始 ,結果爲每個where約束的並集去重。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章