MySql WHERE 運算子號
前言
在 WHERE 子句中,你可以使用任何條件對記錄進行過濾。
準備工作
準備 users 表,並插入資料
# 建立使用者表 users
create table users (
id int AUTO_INCREMENT not null primary key ,
name varchar(255) ,
age int ,
job varchar(255) ,
address varchar(255)
);
# 插入資料
insert into users (id, name, age, job, address)
VALUES
(null, '小趙', 18, '高中生', '廣州' ),
(null, '小錢', 19, '大學生', '廣州' ),
(null, '小孫', 20, '大學生', '廣州' ),
(null, '小李', 21, '大學生', '深圳' ),
(null, '小張', 22, '大學生', '深圳' ),
(null, '小吳', 23, '銷售', '深圳' ),
(null, '小趙', 24, '商務', '惠州' ),
(null, '小王', 25, '程式設計師', '惠州' ),
(null, '小馮', 26, '程式設計師', '惠州' );
1.邏輯運算子
符號 | 描述 |
---|---|
AND | 兩個條件都成立 |
OR | 兩個條件中只要有一個成立 |
NOT | 對條件進行取反操作 |
- AND age > 21 並且 address = '惠州'
select * from users where age > 21 and address = '惠州'
- OR age > 21 或者 address = '惠州'
select * from users where age > 21 or address = '惠州'
- NOT 取反 age > 21 並且 取反 address = '深圳'
select * from users where not age > 21 and not address = '深圳'
2.比較運算子
符號 | 描述 |
---|---|
= | 等於 |
<> | 不等於。註釋:在 SQL 的一些版本中,該運算子可被寫成 != |
> | 大於 |
< | 小於 |
>= | 大於等於 |
<= | 小於等於 |
我們以 age 舉例
- age = 21
- age <> 21
- age > 21
- age < 21
- age >= 21
- age<= 21
select * from users where age = 21 ;
select * from users where age <> 21 ;
select * from users where age > 21 ;
select * from users where age < 21 ;
select * from users where age >= 21 ;
select * from users where age<= 21 ;
3.範圍運算子
符號 | 描述 |
---|---|
IN | 指定針對某個列的多個可能值 |
NOT IN | 指定針對某個列的多個不可能值 |
- 我們以 address 舉例 取address 列中值 為廣州、 惠州的資料 |
select * from users where address in ('廣州','惠州')
- 取address 列中值 不為廣州、 惠州的資料
select * from users where address not in ('廣州','惠州')
結果自行練習這裡就不做截圖了
4.模糊查詢運算子
符號 | 描述 |
---|---|
LIKE | 搜尋某種模式 |
NOT LIKE | 搜尋某種模式,但不是該模式 |
REGEXP | 滿足匹配正則 |
NOT REGEXP | 不滿足正則條件 |
-
like
-
取address 列中值 包含 廣州的資料
select * from users where address like '%廣州%'
- 取address 列中值 不包含 廣州的資料
select * from users where address not like '%廣州%'
-
regexp 正則語法後面單獨講
-
取address 列中值 包含 廣州的資料
select * from users where address regexp '廣州'
5.BETWEEN AND 運算子
符號 | 描述 |
---|---|
BETWEEN AND | 指定一個範圍,包括兩個值 |
NOT BETWEEN AND | 指定一個範圍,不包括兩個值 |
-
between and
-
取 age 列中值 在 20 到 25 之間的資料
select * from users where age between 20 and 25 ;
- not between and
- 取 age 列中值 不在 20 到 25 之間的資料
select * from users where age not between 20 and 25 ;
6.IS NULL 運算子
符號 | 描述 |
---|---|
IS NULL | 指定某個列的值為 NULL |
IS NOT NULL | 指定某個列的值不為 NULL |
再次插入資料
insert into users (id, name, age, job, address)
VALUES
(null, '小陳', 27, '程式設計師', null );
-
is null
-
取address 列中值為 null 的資料
select * from users where address is null ;
-
is not null
-
取address 列中值不為 null 的資料
select * from users where address is not null ;
|