MySQL where 運算子

影的记忆發表於2024-06-17

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 ;

|

相關文章