目錄
1、算術運算
2、比較運算
3、邏輯運算
4、位運算
1、算術運算
+ 、- 、* 、/ 、%。就這5個,和數學中的一樣,沒有類型的轉換。
如果一個數被0除,結果為null。
2、比較運算
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL90zdNpXSq1EeFRUYuJlMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL2gjM5IDO1ATM2ATMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
比較的2個特殊規則:
1. 若有一個或兩個參數為null,則比較運算的結果為null。
2. 若一個字元串和一個數字進行比較,mysql自動将字元串轉換成數字,再比。
= 号可以用于指派,也可以用于判等,判等的話,就是直接比較兩邊的實際内容。
<=> 安全判等
<> 或 != 不等于判斷
< 、> 、 >= 、 <= 都能判斷 資料、字元串、表達式,NULL的規則和判等一樣(也就是說不能用于判斷空值NULL)。
IS NULL 和 IS NOT NULL運算 。 用法 IS NULL(參數) 或者 IS NOT NULL(參數),分别判斷參數是否為null,是否不為null。
BETWEEN ADN運算。 用法 select guid between 1111 and 4444。用于判斷是否處于兩者之前,閉區間,比如[1111, 4444]。
LEAST 運算符。用法 least(值1,值2,...,值n) , 傳回其中最小值,如果其中有null,那麼傳回null。
GREATEST運算符 。greatest(值1,值2,...,值n) , 傳回其中最大值,如果其中有null,那麼傳回null。
IN 和 NOT IN。用法 exp in (exp2)。exp是否在exp2中。
LIKE 比對字元串。expr like 比對條件,比對成功傳回1,比對失敗傳回0,如果expr或比對條件中有為null的,則傳回null。其中%可以比對任何數目的任意字元,_下劃線隻能比對一個任意字元。
REGEXP 比對字元串,這是正規表達式比對法,功能和like一模一樣,隻是通用比對符更多了。
舉例,^ab代表比對以ab開頭的字元串,ab$ 代表比對以ab結束的字元串。其它的都好了解。
3、邏輯運算
NOT 或 ! ,表示非運算,0的非是1,非零的非是1,null的非是null。
AND 或 &&,表示與運算,兩個數都要是非零的結果才是1,兩個數都是null的結果是null,其餘情況結果是0。
OR 或 || ,表示或運算,null和非零值的或運算結果是1,否則,其它情況中,隻要是有null,所得結果為null。
XOR,表示異或,有null時,結果為null。
4、位運算
| 代表位或,将參與運算的資料按照二進制進行位或運算,得到一個結果。
& 代表位與,将參與運算的資料按照二進制進行位與運算,得到一個結果。
^ 代表位異或,将參與運算的資料按照二進制進行位異或運算,得到一個結果。
<< 代表位左移,将資料的二進制為左移多少位,溢出的高位被丢棄,低位由0填充。
>> 代表位右移,将資料的二進制為右移多少位,溢出的低位被丢棄,高位由0填充。
~ 代表位取反,将資料的二進制位取反,1變0,0變1。