MySQL-WHERE搜索數據

我們在使用數據庫提取數據的時候一般都不會整行都需要,往往是提取符合條件的子集數據。因此有必要增加一個搜索條件來精確查找我們需要的數據。WHERE將會幫助我們搜索數據.

#我們先來看一下由產品名稱和價格組成的數據
SELECT prod_name, prod_price
FROM products

這裏寫圖片描述

如果我現在想要買名爲Fuses的產品,我想快速知道它的價格,我們可以

SELECT prod_name, prod_price
FROM products
WHERE prod_name = 'Fuses';

這裏寫圖片描述

如果我想購買的價位在10~35之間的,哪些商品符合我的條件呢?

SELECT prod_name, prod_price
FROM products
WHERE prod_price BETWEEN 10 AND 35;

這裏寫圖片描述

格式:BETWEEN 開始值 AND 結束值;
開始值和結束值都包含在內,是閉區間!

當然,還有一個特別的要求,比如說我作爲老闆,想看看哪個產品的價格忘了填寫,即NULL值,這是我們可以這樣寫

SELECT prod_name, prod_price
FROM products
WHERE prod_price IS NULL;

由於所給的表中的價格都填好了,因此就不給出圖片了。

可以使用的操作符有:

操作符 說明
= 等於
!= 不等於
> 大於
.>= 大於等於
< 小於
<= 小於等於
BETWEEN 範圍取值

注:上面>=的點要去掉,此處加點是因爲博客MARKDOWN編輯的問題

使用AND,OR,IN,NOT來進行多條件過濾

上面我們用WHERE都是過濾單個條件,如果我們的條件有多個的話就用AND,OR,IN,NOT來過濾

AND

我們先看下由供應商,產品名,產品價格組成的表

這裏寫圖片描述

現在我只想看供應商爲1003的產品,並且價格不要超過30

SELECT vend_id, prod_name, prod_price
FROM products
WHERE vend_id = 1003 AND prod_price <=30;

這裏寫圖片描述

OR 和 IN

如果我想要看供應商爲1002和1003的產品

SELECT vend_id, prod_name, prod_price
FROM products
WHERE vend_id = 1002 OR vend_id = 1003;

或者

SELECT vend_id, prod_name, prod_price
FROM prodcuts
WHERE vend_id IN (1002, 1003);

這裏寫圖片描述

NOT

如果我不想看供應商是1002和1003的產品

SELECT vend_id, prod_name, prod_price
FROM products
WHERE vend_id NOT IN (1002, 1003);

這裏寫圖片描述

注意:vend_id = 1002 OR vend_id = 1003 AND prod_price<=30;
以上語句意爲:想要供應商爲1003的且價格不超過30的產品,或者供應商爲1002的所有產品。

操作符之間也是有次序的,AND 比 OR高。不過不用記,只要加括號就可以了,要養成加括號的習慣。

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