在 MySQL 中 AND、OR 運算子在檢索行時有什麼區別?


AND 和 OR 的區別在於 AND 要求兩個條件都為真,則總體條件才為真。OR 要求一個條件為真,則總體條件才為真。

讓我們建立一個表 -

mysql> create table demo70
−> (
−> id int not null auto_increment primary key,
−> name varchar(20),
−> age int
−> );
Query OK, 0 rows affected (0.67 sec)

使用插入命令,插入一些記錄到表中 -

mysql> insert into demo70(name,age) values('John',23);
Query OK, 1 row affected (0.18 sec)

mysql> insert into demo70(name,age) values('David',21);
Query OK, 1 row affected (0.08 sec)

mysql> insert into demo70(name,age) values('Mike',22);
Query OK, 1 row affected (0.15 sec)

mysql> insert into demo70(name,age) values('Chris',20);
Query OK, 1 row affected (0.10 sec)

mysql> insert into demo70(name,age) values('John',24);
Query OK, 1 row affected (0.13 sec)

mysql> insert into demo70(name,age) values('David',22);
Query OK, 1 row affected (0.15 sec)

使用 select 語句在表中顯示記錄 -

mysql> select *from demo70;

這將產生以下輸出 -

+----+-------+------+
| id | name  | age  |
+----+-------+------+
|  1 | John  |   23 |
|  2 | David |   21 |
|  3 | Mike  |   22 |
|  4 | Chris |   20 |
|  5 | John  |   24 |
|  6 | David |   22 |
+----+-------+------+
6 rows in set (0.00 sec)

OR 運算子查詢如下 -

mysql> select *from demo70
−> where name="John" or age=22;

這將產生以下輸出 -

+----+-------+------+
| id | name  | age  |
+----+-------+------+
|  1 | John  |   23 |
|  3 | Mike  |   22 |
|  5 | John  |   24 |
|  6 | David |   22 |
+----+-------+------+
4 rows in set (0.00 sec)

在 OR 結果中,如果 name 是 John,則條件為真。如果任何一行 age 為 22,則為真。

現在讓我們看看 AND 運算子的結果。

查詢如下 -

mysql> select *from demo70
−> where name="John" and age=22;

這將產生以下輸出 -

Empty set (0.00 sec)

AND 返回空集,因為沒有一行具有相同的 name John 和 age 22。

更新日期: 2020-11-20

2K+ 瀏覽量

開啟你的職業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.