Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Khác biệt giữa toán tử AND, OR trong MySQL khi truy xuất hàng

AND yêu cầu cả hai điều kiện đều đúng để kết quả tổng thể là đúng. OR chỉ cần ít nhất một điều kiện đúng.

Tạo bảng demo70:

mysql> CREATE TABLE demo70 (
    -> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> name VARCHAR(20),
    -> age INT
    -> );

Chèn dữ liệu:

mysql> INSERT INTO demo70(name,age) VALUES('John',23);
mysql> INSERT INTO demo70(name,age) VALUES('David',21);
mysql> INSERT INTO demo70(name,age) VALUES('Mike',22);
mysql> INSERT INTO demo70(name,age) VALUES('Chris',20);
mysql> INSERT INTO demo70(name,age) VALUES('John',24);
mysql> INSERT INTO demo70(name,age) VALUES('David',22);

Hiển thị dữ liệu:

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   |
+----+-------+------+

Truy vấn OR (name='John' HOẶC age=22):

mysql> SELECT * FROM demo70 WHERE name='John' OR age=22;

Kết quả (4 hàng):

+----+-------+------+
| id | name  | age  |
+----+-------+------+
| 1  | John  | 23   |
| 3  | Mike  | 22   |
| 5  | John  | 24   |
| 6  | David | 22   |
+----+-------+------+

Truy vấn AND (name='John' VÀ age=22):

mysql> SELECT * FROM demo70 WHERE name='John' AND age=22;

Kết quả: Empty set (không có hàng nào thỏa mãn cả hai).