1. 程式人生 > 資料庫 >MySQL where 條件字句查詢

MySQL where 條件字句查詢

where 條件字句

搜尋條件可由一個或多個邏輯表示式組成 , 結果一般為布林值

邏輯運算子

運算子 語法 描述
and && a and b a && b 邏輯與 兩個為真, 結果為真
or || a or b a || b 邏輯或 一個為真, 結果為真
not ! not a !a 邏輯非 真為假, 假為真
-- ==========  where  ============
SELECT `name`,`sex` FROM student

-- 查詢 name 數值在 95 ~ 100 之間的
SELECT `NAMe`, `address` FROM student WHERE `NAME` >= 95 AND `NAME`<= 100
-- and  &&
SELECT `NAMe`, `address` FROM student WHERE `NAME` >= 95 && `NAME` <= 100
-- between and (區間)
SELECT `name`,`address` FROM student WHERE `name` BETWEEN 95 AND 100

-- 查詢name 不等於 1 的同學
SELECT `NAMe`, `address` FROM student WHERE `NAME` != 1 AND `NAME` < 10
-- not 
SELECT `NAMe`, `address` FROM student WHERE NOT `NAME` = 100 AND `NAME` > 90


模糊查詢: 比較運算子

運算子 語法 描述
is null a is null 如果a為null, 結果為真
is not null a is not null 如果a不為null, 結果為真
between and 3 between 1 and 5 如果 3 在 1 和 5 之間, 結果為真
Like a like b sql匹配, 如果a匹配b, 結果為真
In a in (abcd, pdosa, ...) 若 a 在 (abcd, pdosa, ...) 中, 結果為真
-- ==========  模糊查詢  ============
-- 查詢 姓張的  like 結合  %(代表0到任意個字元)  _(代表一個字元)
SELECT `name` FROM student WHERE `name` LIKE '張%'
-- 查詢 姓張的 後面只有一個字的
SELECT `name` FROM student WHERE `name` LIKE '張_'
-- 查詢 姓張的 後面有兩個字的
SELECT `name` FROM student WHERE `name` LIKE '張__'
-- 查詢 名字中有張字的
SELECT `name` FROM student WHERE `name` LIKE '%張%'


-- ==== in 具體的一個或多個值 ====
-- 查詢 1,2,3 號同學
SELECT `id`,`name` FROM student WHERE `id` IN (1,2,3)
-- 查詢 北京 的同學
SELECT `id`,`name`,`address` FROM student WHERE `address` IN ('北京')

-- ==== null , not null ====
-- 查詢地址為空或者null的
SELECT `name`,`address` FROM student WHERE `address`='' OR `address` IS NULL

-- 查詢有日期的  不為空的
SELECT `name`,`address`,`birthday` FROM student WHERE `birthday` IS NOT NULL

-- 查詢沒有日期的  為空的
SELECT `name`,`address`,`birthday` FROM student WHERE `birthday` IS NULL