#MySQL支援大多數通用的、允許我們執行計算的的算數運算子。
“+(加法)、-(減法)、*(乘法)、/(除法,返回商數)、%(除法,傳回餘數)”,如下例:
select 1+2;//加法运算,结果为3 select 2-1;//减法运算,结果为1 select 3*2;//乘法运算,结果为6 select 6/2;//除法运算,结果为3 select 25%7;//除法运算,结果为4 select 5/0;//除法运算,结果为null,MySQL除法的除数为0是不允许的
請請注意,所有涉及整數的數學運算都是以64位元的精度進行計算。
用字串表示的數字在任何可能便於計算的地方都會被自動的轉換為字串。遵循兩個轉換原則:
1:如果第一位是數字的字串被用於算數運算中,那麼它被轉換為這個數字的值
2:如果一個包含字元和數字混合的字符字串不能被正確的轉換為數字,將被轉換成0
select ‘100’+’004’;//结果为104 select ‘90AA’+’0’;//结果为90 select ‘10x’*’qwe’;//结果0
比較運算符,允許我們對表達式的左邊和右邊進行比較,一個比較運算的結果總是1(真),0(假)或為null(不確定)。
select 6=6,3.4=4.5,’a’=’b’;//判断两边是否相等 select 7<>7,7<>8,’a’<>’b’;//判断两边是否不相等 select 100>100,10<100;//判断左边是否大于右边,左边是否小于右边 select 10>=100,10<=1;//判断左边是否大于等于右边,左边是否小于等于右边 select 10 between 0 and 100;//检验一个值是否存在于一个指定的范围内 select 10 not between 11 and 100;//检验一个值是否不存在于一个指定的范围内 select 7 in (1,2,3,4,5,6,7,8,9);//检验一个值是否包含在一个指定的值集合中 select 7 not in (1,2,3,4,5,6,7,8,9);//检验一个值是否不包含在一个指定的值集合中
預設情況下,比較是不區分大小寫的。我們可以用binary關鍵字來執行區分大小寫的運算
select binary 'ross' in ('Chandler','Joey','Ross');
邏輯運算子可以測試1個或多個表達式(或表達式集合)的邏輯有效性。含有這些運算子的運算結果總是1(真),0(假)或null(不能確定)
邏輯運算子中最簡單的運算子是not運算符,它對跟在它後面的邏輯測試判斷取反,把真變為假,把假變為真
select not 1,not 0,not (2=2),not (100>20);//結果為0,1, 0,1
and 運算子可以測試兩個或更多的值(或表達式求值)的有效性,如果它的所有成分為真且不是null,它會傳回真值,否則回傳假值
select (2=2) and (900
or 運算符,如果包含的值或表達式值為真且不是null,它會傳回真值,否則傳回假值。
select (2=2) 或 (900
#MySQL4.x和更高版本中還包括了一個附加的xor運算符,如果它的參數中的一個(不是兩個)為真,它會傳回真值。
select (1=1) xor (2=4),(1
MySQL包含了6個專門用於位元操作的運算子
「|」運算子用於執行一個位or操作,而&用於執行一個位元and操作。
Case:
select 16|32,9|4;//結果為48,13
select 30 & 10,8 & 16;//結果10,0
#也可以分別使用>運算子向左和向右移動位元。
select 1>1;//結果為128,32
^運算子執行位元xor運算
select 1^0,0^1 ,17^9,143^66;//結果為1,1,24,205
~運算子執行位取反操作,並回傳64位元整數結果
select ~18446744073709551614,1~1 ;
//結果為1,18446744073709551614
以上是深入理解MySQL進階漂流記(二)的詳細內容。更多資訊請關注PHP中文網其他相關文章!