首頁  >  文章  >  資料庫  >  MySQL學習系列4:運算符

MySQL學習系列4:運算符

黄舟
黄舟原創
2016-12-28 17:42:56983瀏覽

MYSQL中的運算子很多,這一節主要講MYSQL中有的,而SQLSERVER沒有的運算符

安全等於運算符()

這個操作符和=操作符執行相同的比較操作,不過可以用來判斷NULL值。

在兩個操作數均為NULL時,其傳回值為1而不為NULL;

而當一個操作數為NULL時,其傳回值為0而不為NULL。

下面分別是SELECT NULL 1 SELECT 10 SELECT NULL NULL 的執行結果

在兩個操作數均為NULL時,其傳回值為1而不為NULL;

MySQL學習系列4:運算符

MySQL學習系列4:運算符

MySQL學習系列4:運算符



LEAST運算子

語法格式為:LEAST(值1,值2,…值n),其中值n表示參數清單中有n個值。在有兩個或多個參數的情況下,傳回最小值。

假如任一個自變數為NULL,則LEAST()的回傳值為NULL

使用LEAST運算子進行大小判斷,SQL語句如下:MySQL學習系列4:運算符



由結果可以看到,當參數中是整數或是整數浮點數時,LEAST會傳回其中最小的值;

當參數為字串時,傳回字母中順序最前面的字元;

當比較值清單中有NULL時,不能判斷大小,傳回值為NULL

GREATEST運算子

語法格式為: GREATEST(值1,值2,…值n),其中n表示參數清單中有n個值。

在有兩個或多個參數的情況下,傳回最大值。

假如任一個自變數為NULL,則GREATEST()的回傳值為NULL

使用GREATEST運算子進行大小判斷,SQL語句如下:MySQL學習系列4:運算符



由結果可以看到,當參數中是整數或浮點數時,GREATEST將傳回其中最大的值;

當參數為字串時,傳回字母中順序最靠後的字元;

當比較值清單中有NULL時,不能判斷大小,傳回值為NULL

REGEXP 運算子

在SQLSERVER裡是沒有正規函數或運算子的,MYSQL在這方面的比較完善

用來匹配字串,語法格式為:expr REGEXP 符合條件,如果expr滿足符合條件,返回1;

如果不滿足,則返回0;

若expr或匹配條件任意一個為NULL,則結果為NULL

常用的幾種通配符:

(1)'^'匹配以該字符後面的字元開頭的字串

(2)'$'匹配以該字元後面的字元結尾的字串

(3)'.'匹配任何一個單字元

(4)'[...]'匹配在方括號內的任何字元。例如,「[abc]」 符合a、b或c。

字符的範圍可以使用一個'-',“[a-z]”匹配任何字母,而“[0-9]”匹配任何數字

(5)'*' 匹配零個或多個在他前面的字元。例如,“x*”匹配任何數量的’*'字符,“[0-9]*”匹配任何數量的數字,

而“.*”匹配任何數量的任何字符。

使用REGEXP 運算子進行字串比對運算,SQL語句如下:MySQL學習系列4:運算符



由結果可以看到,指定符合字串為ssky。

'^s'表示匹配任何以字母s開頭的字串,因此滿足匹配條件,返回1;

'y$'表示匹配任何以字母y結尾的字串,因此滿足匹配條件,返回1;

'.sky'表示匹配任何以sky結尾,字元長度為4的字串,因此滿足匹配條件,返回1;

'^s'表示匹配任何以字母s開頭的字串,因此滿足匹配條件,傳回1;

'[ab]'表示符合任何包含字母a或b的字串,指定字串中沒有字母a也沒有字母b,因此不符合符合條件,傳回0;

TIPS:正規表達式是一個可以進行複雜查詢的強大工具,相對於LIKE字串匹配,他可以使用更多的通配符類型

查詢結果更加靈活。

邏輯運算符

邏輯與運算符:AND或&&

邏輯或運算符:OR或||

上面兩個運算符就不說了

在SQLSERVER裡,與運算符是或運算符;或運算子是OR或|

http://sqlfool.com/2009/02/bitwise-operations/


🎜🎜

異或運算子:XOR

當任一個運算元為NULL時,傳回值為NULL;對於非NULL的運算元,若兩個運算元都是非0值或都是0值,則傳回結果為0 ;

如果一個為0值,另一個為非0值,返回結果為1

使用異或運算符XOR進行邏輯判斷,SQL語句如下

MySQL學習系列4:運算符

由結果可以看到'1 XOR 1'和'0 XOR 0'中運算子兩邊的運算元都為非零值,或都是零值,因此回傳0;

'1 XOR 0′中兩邊的運算元,一個為0值,另一個為非0值,傳回結果為1;

'1 XOR NULL'中有一個運算元為NULL,回傳結果為NULL;

'1 XOR 1 XOR 1′中有多個運算元,運算子相同,因此運算子由左至右依序計算,'1 XOR 1′的結果為0,再與1進行異或運算,因此結果為1。

TIPS: a XOR b的計算等同於(a AND (NOT b))或(NOT a AND ( b))

位運算子

由於比較少用到,這裡只做簡單介紹

位運算符是用來測試二進位位元組中的位元或測試處理

MYSQL中提供的位元運算有

位元或(|)

位元與(&)

位元或(^)

按位左移(
按位右移(>>)

按位取反(~):反轉所有位元

TIPS:可以使用BIN()=binary函數查看一個十進制數的二進位表示

例如20這個數字SELECT BIN(20)

二進位表示為:10100

MySQL學習系列4:運算符

同樣sqlserver 有位運算子特別提示

某一些MYSQL中的特殊字元需要用轉義字元才能插入資料庫,否則產生意料之外的結果。 MySQL學習系列4:運算符

下面的特殊字元需要在輸入時加上反斜線符號開頭


輸入單引號需要:'

輸入雙引號需要:”

輸入反斜線:\

輸入車符:r

輸入反斜線:\

輸入輸入換行符:n

輸入製表符:tab

輸入退格符:b

在插入這些特殊字元到資料庫之前一定要進行轉義處理

在SQLSERVER裡,這些特殊字元不是在前面加反斜杠,而是加單引號'

例如插入一個單引號,加了反斜杠,插入成功


總結MySQL學習系列4:運算符

這一節簡單介紹了MYSQL裡的一些運算符和特殊字符,並且比較了與SQLSERVER的差別


 以上就是MySQL學習系列4:運算子的內容,更多相關內容請關注PHP中文網(www.php.cn)!



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn