1.算數運算符
- +,
- -,
- *
- /, DIV,
- %, MOD
- 在除法和模運算中,如果除數為0,將是非法除數,返回結果為NULL
2.比較運算符
- =
- <>, !=
- <=> //NULL的安全等於(NULL-safe)
- <
- <=
- >
- >=
- BETWEEN //x BETWEEN a AND b -> a <= x <= b
- IN
- IS NULL
- IS NOT NULL
- LIKE
- REGEXP, RLIKE //string REGEXP string_pat 當string字符串中含有string_pat相匹配的字符串時返回1
- MYSQL允許用戶對表達式的左邊操作數和右邊操作數進行比較,比較結果為真則返回1,為假則返回0,比較結果不確定則返回NULL
- 比較運算符可以用於比較數字,字符串和表達式。數字作為浮點數比較,而字符串已不區分大小寫的方式進行比較。
- NULL不能用 = 比較。
- <=>和 = 類似,在操作數相等時為1,不同之處在於及時操作的值為NULL也可以正確比較。
3.邏輯運算符
- NOT, !
NOT NULL返回值為NULL
- AND, &&
當所有操作數均為非零值並且不為NULL時,計算所得結果為1,當1個或多個操作數為0時,所得結果為0,操作數中有任何一個為NULL則返回值為NULL
- OR, ||
當兩個操作數均為非NULL值時,如果任意一個操作數為非零值,則結果為1,否則結果為0。當有一個操作數為NULL時,如果另一個操作數為非零值,則結果為1,否則為NULL。兩個操作數均為NULL,則所得結果為NULL。
- XOR //異或
當任意一個操作數為NULL時,返回值為NULL,對於非NULL的操作數,如果兩個邏輯真假值相異,則返回結果1,否則返回0
4.位運算符
- &
- |
- ^
- ~
- >>
- <<
5.運算符的優先級
- 從低到高排序
- :=
- ||, OR, XOR
- &&, AND
- NOT
- BETWEEN, CASE, WHEN, THEN, ELSE
- =, <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
- |
- &
- <<, >>
- -, +
- *, /, DIV, %, MOD
- ^
- -, ~
- !