概述
MySQL支援多種型別的運算子,這些運算子可以用來連結表示式,這些運算子包括:
- 算數運算子(+,-,*,/,%);
- 比較運算子(=,!=,<,<=,>,>=,between,in,is null,is not null,like,regexp);
- 邏輯運算子(not,and,or,xor);
- 位運算子(&,|,^,~,>>,<<);
舉例
算數運算子
select 0.1+0.333,0.1-0.3333,1/2,1%2;複製程式碼
- 在除法和模運算中,如果除數為0,結果會返回NULL;
- 對於模運算,mod(a,b)函式與a%b效果一樣。
比較運算子
#between and
SELECT 10 BETWEEN 10 AND 20,
9 BETWEEN 10 AND 20;
#like
SELECT 123456 LIKE '123%',
123456 LIKE '%123%',
123456 LIKE '%321%';
#regexp
select 'abcdef' regexp 'ab',
'abcdefg' regexp 'k';複製程式碼
邏輯運算子
#not
select not 0,not 1,not null;
#and
select (1 and 1),(0 and 1),(3 and 1),(1 and null);
#or,xor(異或)同上使用複製程式碼
位運算子
select 2&3,2&3&4,2|3,2^3,~1;複製程式碼
- 位運算是將給定的運算元轉化為二進位制之後,對各個運算元每一位進行指定的邏輯運算。
- 解釋:&-位與,|-位或,^-位異或,~-位取反,>>-位右移,<<-位左移。
運算子的優先順序
仍一張圖作為總結:
- 在實際應用中,都是用“( )”來將需要優先的操作括起來,這樣既起到了優先作用,又使得其他使用者看起來更易於理解。