MYSQL 運(yùn)算符總結(jié)
1、算數(shù)運(yùn)算符
MySQL支持的算術(shù)運(yùn)算符:
運(yùn)算符
|
作用
|
+
|
加法
|
-
|
減法
|
*
|
乘法
|
/,DIV
|
除法,返回商
|
%,MOD
|
除法,返回余數(shù)
|
例1: +,-,*,/,%,
mysql> select 0.1+0.333,0.1-0.333,0.1*0.333,1/2,1%2; +-----------+-----------+-----------+--------+------+ | 0.1+0.333 | 0.1-0.333 | 0.1*0.333 | 1/2 | 1%2 | +-----------+-----------+-----------+--------+------+ | 0.433 | -0.233 | 0.0333 | 0.5000 | 1 | +-----------+-----------+-----------+--------+------+ 1 row in set (0.05 sec)
例2:除法運(yùn)算中,如果除數(shù)為0
將是返回NULL
mysql> select 1/0; +------+ | 1/0 | +------+ | NULL | +------+ 1 row in set (0.00 sec)
例3:模運(yùn)算的另外一種形式MOD
(a,b) 和a%b
相同
mysql> select 1%2,mod(1,2); +------+----------+ | 1%2 | mod(1,2) | +------+----------+ | 1 | 1 | +------+----------+ 1 row in set (0.00 sec)
2、比較運(yùn)算符
MySQL支持的比較運(yùn)算符:
運(yùn)算符
|
作用
|
=
|
等于 |
<>或!=
|
不等于
|
<=>
|
NULL 安全的等于(NULL-safe)
|
<
|
小于
|
<=
|
小于等于
|
>
|
大于
|
>=
|
大于等于
|
BETWEEN
|
存在與指定范圍
|
IN
|
存在于指定集合
|
IS NULL
|
為 NULL
|
IS NOT NULL
|
不為 NULL
|
LIKE
|
通配符匹配
|
REGEXP 或 RLIKE
|
正則表達(dá)式匹配
|
例1:“<>
” 和 “=
” 相反,如果兩則操作不等 返回結(jié)果為1,否則返回結(jié)果0,“NULL
”不能用于“<>
”比較
mysql> select 1<>0,1<>1,null<>null; +------+------+------------+ | 1<>0 | 1<>1 | null<>null | +------+------+------------+ | 1 | 0 | NULL | +------+------+------------+ 1 row in set (0.00 sec)
例2: “<=>
”安全等于運(yùn)算符和“=
”操作相同返回1,區(qū)別在于“<=>
”在值為null
的時(shí)候也可以做比較
mysql> select 1<=>1,1<=>0,null<=>null; +-------+-------+-------------+ | 1<=>1 | 1<=>0 | null<=>null | +-------+-------+-------------+ | 1 | 0 | 1 | +-------+-------+-------------+ 1 row in set (0.02 sec)
例3: “<
”當(dāng)左側(cè)小于右側(cè)時(shí),返回1
mysql> select 'a'<'b','A'<'b','bdf'<'c',1<2; +---------+---------+-----------+-----+ | 'a'<'b' | 'A'<'b' | 'bdf'<'c' | 1<2 | +---------+---------+-----------+-----+ | 1 | 1 | 1 | 1 | +---------+---------+-----------+-----+ 1 row in set (0.02 sec)
例4:between
,格式為“a BETWEEN min AND max
”,表示a大于等于min
并且小于等于max
的時(shí)候,返回1,否則返回0
mysql> select 10 between 10 and 20,9 between 10 and 20; +----------------------+---------------------+ | 10 between 10 and 20 | 9 between 10 and 20 | +----------------------+---------------------+ | 1 | 0 | +----------------------+---------------------+ 1 row in set (0.01 sec)
例5:regexp
,格式為“str REGEXP str_pat
”,表示str字符串中含有str_pat
相匹配的字符串時(shí),則返回1,否則返回0
mysql> select 'abcdeef' regexp 'ab','abcdef' regexp 'g','abcedf' regexp 'df'; +-----------------------+---------------------+----------------------+ | 'abcdeef' regexp 'ab' | 'abcdef' regexp 'g' | 'abcedf' regexp 'df' | +-----------------------+---------------------+----------------------+ | 1 | 0 | 1 | +-----------------------+---------------------+----------------------+ 1 row in set (0.01 sec)
其他的使用簡(jiǎn)單,直接上語(yǔ)法,示例就不寫了
in
,使用格式為“a IN (value1,value2,…)
”IS NULL
,使用格式為“a IS NULL
”IS NOT NULL
,使用格式為“a IS NOT NULL
”LIKE
,使用格式為“a LIKE %123%
”
3、邏輯運(yùn)算符
MySQL中的邏輯運(yùn)算符:
運(yùn)算符
|
作用
|
NOT 或!
|
邏輯非
|
AND 或&&
|
邏輯與
|
OR 或 ||
|
邏輯或
|
XOR
|
邏輯異或
|
例1: ““NOT
”或“!
”表示邏輯非。返回和操作數(shù)相反的結(jié)果。當(dāng)操作為0,則返回1;當(dāng)操作為1,則返回0,但是NOT NLLL
返回null
mysql> select not 0,!0,not 1,not null; +-------+----+-------+----------+ | not 0 | !0 | not 1 | not null | +-------+----+-------+----------+ | 1 | 1 | 0 | NULL | +-------+----+-------+----------+ 1 row in set (0.00 sec)
例2: “AND
”和“&&
”表示邏輯與運(yùn)算,當(dāng)操作數(shù)均為非零值,返回結(jié)果1,否則返回0,當(dāng)操作數(shù)中有任意一個(gè)為NULL,其中一個(gè)值如果為0,返回0;其他值都是>0的數(shù)值,另外有NULL
,則返回NULL
mysql> select (1 and 1),(0 and 1),(3 and 1),(0 and null),(1 and null); +-----------+-----------+-----------+--------------+--------------+ | (1 and 1) | (0 and 1) | (3 and 1) | (0 and null) | (1 and null) | +-----------+-----------+-----------+--------------+--------------+ | 1 | 0 | 1 | 0 | NULL | +-----------+-----------+-----------+--------------+--------------+ 1 row in set (0.00 sec) mysql> select 1 and NULL and 0; +------------------+ | 1 and NULL and 0 | +------------------+ | 0 | +------------------+ 1 row in set (0.00 sec) mysql> select 1 and NULL and 3; +------------------+ | 1 and NULL and 3 | +------------------+ | NULL | +------------------+ 1 row in set (0.00 sec)
例3: “OR
”或“||
”表示邏輯或運(yùn)算。當(dāng)操作數(shù)均不為NULL時(shí),任意一方非零,則結(jié)果為1,否則為0;當(dāng)有一個(gè)操作數(shù)為NULL,如果另一個(gè)操作數(shù)非零,則結(jié)果為1,否則結(jié)果為NULL
mysql> select (1 or 0),(0 or 0),(1 or NULL),(0 or NULL),(NULL or NULL); +----------+----------+-------------+-------------+----------------+ | (1 or 0) | (0 or 0) | (1 or NULL) | (0 or NULL) | (NULL or NULL) | +----------+----------+-------------+-------------+----------------+ | 1 | 0 | 1 | NULL | NULL | +----------+----------+-------------+-------------+----------------+ 1 row in set (0.00 sec)
例4:XOR
表示邏輯異或。當(dāng)任意一個(gè)操作數(shù)為 NULL 時(shí),返回值為 NULL。對(duì)于非 NULL 的操作數(shù),如果兩個(gè)的邏輯真假值相異,則返回結(jié)果 1;否則返回 0。
mysql> select (0 xor 0),(1 xor 0),(1 xor 1),(1 xor null),(0 xor null),(null xor null); +-----------+-----------+-----------+--------------+--------------+-----------------+ | (0 xor 0) | (1 xor 0) | (1 xor 1) | (1 xor null) | (0 xor null) | (null xor null) | +-----------+-----------+-----------+--------------+--------------+-----------------+ | 0 | 1 | 0 | NULL | NULL | NULL | +-----------+-----------+-----------+--------------+--------------+-----------------+ 1 row in set (0.00 sec)
4、位運(yùn)算符
MySQL支持的位運(yùn)算符:
運(yùn)算符
|
作用 |
&
|
位與(位 AND)
|
|
|
位或 (位 OR )
|
^
|
位異或(位 XOR)
|
~
|
位取反
|
>>
|
位右移
|
<<
|
位左移
|
例1: “位與”對(duì)多個(gè)操作數(shù)的二進(jìn)制位作邏輯與操作。2&3,2的二進(jìn)制數(shù)為10,3的二進(jìn)制數(shù)為11,將此做與操作,結(jié)果還是10,轉(zhuǎn)換為十進(jìn)制結(jié)果就是2
mysql> select 2&3; +-----+ | 2&3 | +-----+ | 2 | +-----+ 1 row in set (0.01 sec)
例2: “位或”對(duì)多個(gè)操作數(shù)的二進(jìn)制位作邏輯或操作。2&3,2的二進(jìn)制數(shù)為10,3的二進(jìn)制數(shù)為11,將此做與操作,結(jié)果就變成11,轉(zhuǎn)換為十進(jìn)制結(jié)果就是3
mysql> select 2|3; +-----+ | 2|3 | +-----+ | 3 | +-----+ 1 row in set (0.00 sec)
例3: “位異或
”對(duì)多個(gè)操作數(shù)的二進(jìn)制位作異或操作。2^3 ,2的二進(jìn)制數(shù)為10,3的二進(jìn)制數(shù)為11,10^11結(jié)果就是01,轉(zhuǎn)換為十進(jìn)制結(jié)果就是1
mysql> select 2^3; +-----+ | 2^3 | +-----+ | 1 | +-----+ 1 row in set (0.01 sec)
例4: “位取反”對(duì)操作數(shù)的二進(jìn)制位做NOT操作,這里的操作數(shù)只能是一位,解釋:在mysql中常亮數(shù)字默認(rèn)會(huì)以8字節(jié)表示,8個(gè)字節(jié)就是64位,而常量1的二進(jìn)制 就是前面63個(gè)0,1個(gè)1,位去反后就是63個(gè)1,1個(gè)0,轉(zhuǎn)換為二進(jìn)制后就是 18446744073709551614,
mysql> select ~1,~18446744073709551614 -> ; +----------------------+-----------------------+ | ~1 | ~18446744073709551614 | +----------------------+-----------------------+ | 18446744073709551614 | 1 | +----------------------+-----------------------+ 1 row in set (0.01 sec) mysql> select bin(18446744073709551614); +------------------------------------------------------------------+ | bin(18446744073709551614) | +------------------------------------------------------------------+ | 1111111111111111111111111111111111111111111111111111111111111110 | +------------------------------------------------------------------+ 1 row in set (0.03 sec)
例5: “位右移”對(duì)左操作數(shù)向右移動(dòng)操作數(shù)指定的位數(shù)。例如100>>3,對(duì)100的二進(jìn)制數(shù)0001100100右移動(dòng)3位,0000001100,轉(zhuǎn)換為二進(jìn)制數(shù)就是12:
mysql> select 100>>3; +--------+ | 100>>3 | +--------+ | 12 | +--------+ 1 row in set (0.00 sec)
例6: “位左移”對(duì)左操作數(shù)向左移動(dòng)操作數(shù)指定的位數(shù)。例如100<<3,對(duì)100的二進(jìn)制數(shù)0001100100000右移動(dòng)3位,1100100000000,轉(zhuǎn)換為二進(jìn)制數(shù)就是800:
mysql> select 100<<3; +--------+ | 100<<3 | +--------+ | 800 | +--------+ 1 row in set (0.00 sec)
5、運(yùn)算符的優(yōu)先級(jí)
MySQL中的運(yùn)算符優(yōu)先級(jí):
優(yōu)先級(jí)順序
|
運(yùn)算符
|
1 |
:=
|
2 |
||, OR, XOR
|
3 |
&&, AND
|
4 |
NOT
|
5 |
BETWEEN, CASE, WHEN, THEN, ELSE
|
6 |
=, <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
|
7 |
|
|
8 |
&
|
9 |
<<, >>
|
10 |
-, +
|
11 |
*, /, DIV, %, MOD
|
12 |
^
|
13 |
- (一元減號(hào)), ~ (一元比特反轉(zhuǎn))
|
14 |
!
|
到此這篇關(guān)于MYSQL 運(yùn)算符總結(jié)的文章就介紹到這了,更多相關(guān)MYSQL 運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用percona-toolkit操作MySQL的實(shí)用命令小結(jié)
這篇文章主要介紹了使用percona-toolkit操作MySQL的實(shí)用命令小結(jié),percona-toolkit是一款強(qiáng)大的MySQL輔助工具軟件,需要的朋友可以參考下2015-11-11MySQL給新建用戶并賦予權(quán)限最簡(jiǎn)單的方法
在本篇文章里小編給大家整理的是一篇關(guān)于MySQL給新建用戶并賦予權(quán)限最簡(jiǎn)單的方法,需要的朋友們參考下。2019-11-11使用phpMyAdmin批量修改Mysql數(shù)據(jù)表前綴的方法
這篇文章主要介紹了使用phpMyAdmin批量修改Mysql數(shù)據(jù)表前綴的方法,需要的朋友可以參考下2015-09-09mysql 8.0.12安裝配置方法圖文教程(Windows版)
這篇文章主要為大家詳細(xì)介紹了Windows下mysql 8.0.12安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08MySQL學(xué)習(xí)第一天 第一次接觸MySQL
這篇文章是學(xué)習(xí)MySQL的第一篇文章,開啟了探究MySQL的奇妙旅程,內(nèi)容主要是對(duì)MySQL的基礎(chǔ)知識(shí)進(jìn)行學(xué)習(xí),了解,感興趣的小伙伴們可以參考一下2016-05-05MySQL常見的底層優(yōu)化操作教程及相關(guān)建議
這篇文章主要介紹了MySQL常見的底層優(yōu)化操作教程及相關(guān)建議,包括對(duì)運(yùn)行操作系統(tǒng)的硬件方面及存儲(chǔ)引擎參數(shù)的調(diào)整等零碎方面的小整理,需要的朋友可以參考下2015-12-12MySQL學(xué)習(xí)之基礎(chǔ)命令實(shí)操總結(jié)
MySQL 是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在WEB應(yīng)用方面MySQL是最好的。本文將為大家詳細(xì)介紹一些MySQL的基礎(chǔ)命令,需要的可以參考一下2022-03-03