MySQL支持多種類型的運算符,這些運算符可以用來連接表達式的項。這些類型主要包括算術運算符、比較運算符、邏輯運算符和位運算符。
一、算術運算符(加、減、乘、除和模運算)
運算符 | 作用 |
---|---|
+ | 加法 |
- | 減法 |
* | 乘法 |
/ 或 DIV | 除法,/返回商,帶小數點的,DIV返回整除商(例如:10/4=2.5 ;10 DIV 4 =2) |
% 或 MOD | 取餘,返回餘數 |
在除法運算和模運算中,如果除數爲0,將是非法除數,返回結果爲NULL。
1.加
select 1+2 ; --返回3
2.減
select 1-2 ; --返回-1
3.乘
select 1*2 ; --返回2
4.除
select 1/2 ; --返回0.5
5.整除
select 10 div 4 ; --返回2
6.取模
select 10 % 4 ; --返回2
select 10 mod 4 ; --返回2
二、比較運算符
SELECT 語句中的條件語句經常要使用比較運算符。通過這些比較運算符,可以判斷表中的哪些記錄是符合條件的。比較結果爲真,則返回 1,爲假則返回 0,比較結果不確定則返回 NULL。
符號 | 描述 | 備註 |
---|---|---|
= | 等於 | |
<>, != | 不等於 | |
> | 大於 | |
< | 小於 | |
<= | 小於等於 | |
>= | 大於等於 | |
BETWEEN | 在兩值之間 | >=min&&<=max |
NOT BETWEEN | 不在兩值之間 | |
IN | 在集合中 | |
NOT IN | 不在集合中 | |
<=> | 嚴格比較兩個NULL值是否相等 |
兩個操作碼均爲NULL時,其所得值爲1; 而當一個操作碼爲NULL時,其所得值爲0 |
LIKE | 模糊匹配 | |
REGEXP 或 RLIKE | 正則式匹配 | |
IS NULL | 爲空 | |
IS NOT NULL | 不爲空 |
1.等於=
select 2=3; -- 返回 0
select null=null; -- 返回null
2.不等於<>或!=
select 2!=3; -- 返回 1,等效於:
select 2<>3; -- 返回 1
3.安全等於<=>:當兩個操作碼均爲 NULL 時,其所得值爲 1 ;反之,其所得值爲 0。
select null<=>null; -- 返回1
select null<=>0; -- 返回0
select 2<=>3; -- 返回0
區別於=: select null=null; 返回null
4.小於<、小於等於<=、大於>、大於等於>=
select 2<3; --返回1
select 2<=3; --返回1
select 2>3; --返回0
select 2>=3; --返回0
5.存在於指定範圍 between
select 5 between 1 and 10; -- 返回1
6.存在於指定集合 in | 不存在於指定集合 not in
select 5 in (1,2,3,4,5); -- 返回1
select 5 not in (1,2,3,4); -- 返回1
7.判斷是不是null: is null 及 is not null
select null is NULL; -- 返回1
select 'a' is NULL; -- 返回0
select null IS NOT NULL; -- 返回0
select 'a' IS NOT NULL ; -- 返回1
8.模糊匹配 like
select '12345' like '12%'; -- 返回1
select '12345' like '12_'; -- 返回0
9.正則表達式
select 'beijing' REGEXP 'jing'; -- 返回1
select 'beijing' REGEXP 'xi'; -- 返回0
三、邏輯運算符
運算符號 | 作用 |
---|---|
NOT 或 ! | 邏輯非 |
AND | 邏輯與 |
OR | 邏輯或 |
XOR | 邏輯異或 |
1.與 and
select 2 and 0; -- 返回0
2.或 or
select null or 1 ; -- 返回1
3.非 not、!
select not 1; -- 返回0
select !0; -- 返回1
4.異或xor
select 1 xor 1; -- 返回 0
select 1 xor 0; -- 返回 1
select 1 xor null; -- 返回 1
四、位運算
運算符號 | 作用 |
---|---|
& | 按位與 |
| | 按位或 |
^ | 按位異或 |
! | 取反 |
<< | 左移 |
>> | 右移 |
1.按位與 &
select 3&5; -- 返回1
2.按位或 |
select 3|5; -- 返回7
3.按位異或 ^
select 3^5; -- 返回6
4.按位取反 ~
select ~18446744073709551612; -- 返回3
select ~3; -- 返回4
5.按位右移 >>
select 3>>1; -- 返回1
6.按位左移 <<
select 3<<1; -- 返回6
五、運算符的優先級
最低優先級爲: :=。
最高優先級爲: !、BINARY、 COLLATE。