Computer >> Máy Tính >  >> Lập trình >> MySQL

Sự khác biệt giữa toán tử AND, OR trong MySQL khi truy xuất hàng là gì?

Sự khác biệt giữa AND, OR là AND đánh giá cả hai điều kiện phải đúng với điều kiện tổng thể là đúng. OR đánh giá một điều kiện phải đúng để điều kiện tổng thể là đúng.

Hãy để chúng tôi tạo một bảng -

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)

Chèn một số bản ghi vào bảng với sự trợ giúp của lệnh insert -

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)

Hiển thị các bản ghi từ bảng bằng cách sử dụng câu lệnh select -

mysql> select *from demo70;

Điều này sẽ tạo ra kết quả sau -

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

Sau đây là truy vấn toán tử OR -

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

Điều này sẽ tạo ra kết quả sau -

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

Trong kết quả OR, nếu tên là John thì điều kiện sẽ đúng. Nếu bất kỳ hàng nào có tuổi là 22, thì nó sẽ đúng.

Bây giờ chúng ta hãy xem kết quả của toán tử AND.

Truy vấn như sau -

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

Điều này sẽ tạo ra kết quả sau -

Empty set (0.00 sec)

AND cho tập hợp trống vì không có hàng nào có cùng tên John và tuổi 22.