日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
MySQL邏輯運(yùn)算符
邏輯運(yùn)算符又稱為布爾運(yùn)算符,用來(lái)確定表達(dá)式的真和假。mysql中支持的邏輯運(yùn)算符如下表所示。

MySQL 中的邏輯運(yùn)算符
運(yùn)算符 作用
NOT 或者 ! 邏輯非
AND 或者 && 邏輯與
OR 和 || 邏輯或
XOR 邏輯異或

 

下面分別討論 MySQL 邏輯運(yùn)算符的使用方法。

邏輯非運(yùn)算(NOT 或者 !)

NOT
!都是邏輯非運(yùn)算符,返回和操作數(shù)相反的結(jié)果,具體語(yǔ)法規(guī)則為:

  • 當(dāng)操作數(shù)為 0(假)時(shí),返回值為 1;
  • 當(dāng)操作數(shù)為非零值時(shí),返回值為 0;
  • 當(dāng)操作數(shù)為 NULL 時(shí),返回值為 NULL。

 

【實(shí)例1】分別使用非運(yùn)算符 NOT 或者 ! 進(jìn)行邏輯判斷,運(yùn)行結(jié)果如下:

mysql> SELECT NOT 10,NOT(1-1),NOT-5,NOT NULL,NOT 1+1;
+--------+----------+-------+----------+---------+
| NOT 10 | NOT(1-1) | NOT-5 | NOT NULL | NOT 1+1 |
+--------+----------+-------+----------+---------+
|      0 |        1 |     0 |     NULL |       0 |
+--------+----------+-------+----------+---------+
1 row in set (0.00 sec)

mysql> SELECT !10,!(1-1),!-5,!NULL,!1+1;
+-----+--------+-----+-------+------+
| !10 | !(1-1) | !-5 | !NULL | !1+1 |
+-----+--------+-----+-------+------+
|   0 |      1 |   0 |  NULL |    1 |
+-----+--------+-----+-------+------+
1 row in set (0.00 sec)

mysql> SELECT !1+1;
+------+
| !1+1 |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

由運(yùn)行結(jié)果可以看出,
NOT 1+1
! 1+1的返回值不同,這是因?yàn)?NOT 與 ! 的優(yōu)先級(jí)不同:

  • NOT 的優(yōu)先級(jí)低于 +,因此NOT 1+1相當(dāng)于NOT(1+1),先計(jì)算1+1,然后再進(jìn)行 NOT 運(yùn)算,由于操作數(shù)不為 0,因此NOT 1+1的結(jié)果是 0;
  • 相反,! 的優(yōu)先級(jí)別要高于 +,因此! 1+1相當(dāng)于(!1)+1,先計(jì)算!1結(jié)果為 0,再加 1,最后結(jié)果為 1。


讀者在使用運(yùn)算符運(yùn)算時(shí),一定要注意運(yùn)算符的優(yōu)先級(jí),如果不能確定計(jì)算順序,最好使用括號(hào),以保證運(yùn)算結(jié)果的正確。

邏輯與運(yùn)算符(AND 或者 &&)

AND 和 && 都是邏輯與運(yùn)算符,具體語(yǔ)法規(guī)則為:

  • 當(dāng)所有操作數(shù)都為非零值并且不為 NULL 時(shí),返回值為 1;
  • 當(dāng)一個(gè)或多個(gè)操作數(shù)為 0 時(shí),返回值為 0;
  • 操作數(shù)中有任何一個(gè)為 NULL 時(shí),返回值為 NULL。

【實(shí)例2】分別使用與運(yùn)算符 AND 和 && 進(jìn)行邏輯判斷,運(yùn)行結(jié)果如下:

mysql> SELECT 1 AND -1,1 AND 0,1 AND NULL, 0 AND NULL;
+----------+---------+------------+------------+
| 1 AND -1 | 1 AND 0 | 1 AND NULL | 0 AND NULL |
+----------+---------+------------+------------+
|        1 |       0 |       NULL |          0 |
+----------+---------+------------+------------+
1 row in set (0.00 sec)

mysql> SELECT 1 && -1,1&&0,1&&NULL,0&&NULL;
+---------+------+---------+---------+
| 1 && -1 | 1&&0 | 1&&NULL | 0&&NULL |
+---------+------+---------+---------+
|       1 |    0 |    NULL |       0 |
+---------+------+---------+---------+
1 row in set (0.00 sec)

由結(jié)果可以看到,AND 和 && 的作用相同。
1 AND-1中沒(méi)有 0 或者 NULL,所以返回值為 1;
1 AND 0中有操作數(shù) 0,所以返回值為 0;
1 AND NULL雖然有 NULL,所以返回值為 NULL。

 


注意:AND 運(yùn)算符可以有多個(gè)操作數(shù),但要注意多個(gè)操作數(shù)運(yùn)算時(shí),AND 兩邊一定要使用空格隔開(kāi),不然會(huì)影響結(jié)果的正確性。

邏輯或運(yùn)算符(OR 或者 ||)

OR 和 || 都是邏輯或運(yùn)算符,具體語(yǔ)法規(guī)則為:

  • 當(dāng)兩個(gè)操作數(shù)都為非 NULL 值時(shí),如果有任意一個(gè)操作數(shù)為非零值,則返回值為 1,否則結(jié)果為 0;
  • 當(dāng)有一個(gè)操作數(shù)為 NULL 時(shí),如果另一個(gè)操作數(shù)為非零值,則返回值為 1,否則結(jié)果為NULL;
  • 假如兩個(gè)操作數(shù)均為 NULL 時(shí),則返回值為 NULL。

【實(shí)例3】分別使用或運(yùn)算符 OR 和 || 進(jìn)行邏輯判斷,運(yùn)行結(jié)果如下:

mysql> SELECT 1 OR -1 OR 0,1 OR 2,1 OR NULL, 0 OR NULL, NULL OR NULL;
+--------------+--------+-----------+-----------+--------------+
| 1 OR -1 OR 0 | 1 OR 2 | 1 OR NULL | 0 OR NULL | NULL OR NULL |
+--------------+--------+-----------+-----------+--------------+
|            1 |      1 |         1 |      NULL |         NULL |
+--------------+--------+-----------+-----------+--------------+
1 row in set (0.00 sec)

mysql> SELECT 1 || -1 || 0,1||2,1||NULL,0||NULL,NULL||NULL;
+--------------+------+---------+---------+------------+
| 1 || -1 || 0 | 1||2 | 1||NULL | 0||NULL | NULL||NULL |
+--------------+------+---------+---------+------------+
|            1 |    1 |       1 |    NULL |       NULL |
+--------------+------+---------+---------+------------+
1 row in set (0.00 sec)

由結(jié)果可以看到,OR 和 || 的作用相同。下面是對(duì)各個(gè)結(jié)果的解析:

  • 1 OR -1 OR 0含有 0,但同時(shí)包含有非 0 的值 1 和 -1,所以返回結(jié)果為 1;
  • 1 OR 2中沒(méi)有操作數(shù) 0,所以返回結(jié)果為 1;
  • 1 OR NULL雖然有 NULL,但是有操作數(shù) 1,所以返回結(jié)果為 1;
  • 0 OR NULL中沒(méi)有非 0 值,并且有 NULL,所以返回值為 NULL;
  • NULL OR NULL中只有NULL,所以返回值為NULL。

異或運(yùn)算(XOR 運(yùn)算符)

XOR 表示邏輯異或,具體語(yǔ)法規(guī)則為:

  • 當(dāng)任意一個(gè)操作數(shù)為 NULL 時(shí),返回值為 NULL;
  • 對(duì)于非 NULL 的操作數(shù),如果兩個(gè)操作數(shù)都是非 0 值或者都是 0 值,則返回值為 0;
  • 如果一個(gè)為0值,另一個(gè)為非 0 值,返回值為 1。

【實(shí)例4】使用異或運(yùn)算符 XOR 進(jìn)行邏輯判斷,SQL語(yǔ)句如下:

mysql> SELECT 1 XOR 1,0 XOR 0,1 XOR 0,1 XOR NULL,1 XOR 1 XOR 1;
+---------+---------+---------+------------+---------------+
| 1 XOR 1 | 0 XOR 0 | 1 XOR 0 | 1 XOR NULL | 1 XOR 1 XOR 1 |
+---------+---------+---------+------------+---------------+
|       0 |       0 |       1 |       NULL |             1 |
+---------+---------+---------+------------+---------------+
1 row in set (0.00 sec)

由結(jié)果可以看到:


1 XOR 1
0 XOR 0中運(yùn)算符兩邊的操作數(shù)都為非零值,或者都是零值,因此返回 0;


1 XOR 0中兩邊的操作數(shù),一個(gè)為 0 值,另一個(gè)為非 0 值,所以返回值為 1;


1 XOR NULL中有一個(gè)操作數(shù)為 NULL,所以返回值為 NULL;


1 XOR 1 XOR 1中有多個(gè)操作數(shù),運(yùn)算符相同,因此運(yùn)算順序從左到右依次計(jì)算,
1 XOR 1的結(jié)果為 0,再與 1 進(jìn)行異或運(yùn)算,所以返回值為 1。

提示:a XOR b 的計(jì)算等同于 (a AND (NOT b))或者 ((NOT a) AND b)。


網(wǎng)站題目:MySQL邏輯運(yùn)算符
網(wǎng)站路徑:http://www.dlmjj.cn/article/cdjpjgg.html