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

Làm cách nào để trả về nhiều kết quả trong một truy vấn con MySQL với IN ()?

Trong MySQL, bạn có thể dễ dàng trả về nhiều kết quả, nhưng cũng đạt được điều này với truy vấn con sử dụng IN (). Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable1317
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(20)
-> );
Query OK, 0 rows affected (0.49 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn

mysql> insert into DemoTable1317(Name) values('Chris Brown');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1317(Name) values('John Doe');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1317(Name) values('Adam Smith');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1317(Name) values('John Smith');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1317(Name) values('David Miller');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1317(Name) values('Carol Taylor');
Query OK, 1 row affected (0.14 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable1317;

Đầu ra

+----+--------------+
| Id | Name         |
+----+--------------+
|  1 | Chris Brown  |
|  2 | John Doe     |
|  3 | Adam Smith   |
|  4 | John Smith   |
|  5 | David Miller |
|  6 | Carol Taylor |
+----+--------------+
6 rows in set (0.00 sec)

Sau đây là truy vấn để trả về nhiều kết quả trong một truy vấn con MySQL -

mysql> select Name from DemoTable1317
-> where Id IN ( select Id from DemoTable1317);

Đầu ra

+--------------+
| Name         |
+--------------+
| Chris Brown  |
| John Doe     |
| Adam Smith   |
| John Smith   |
| David Miller |
| Carol Taylor |
+--------------+
6 rows in set (0.00 sec)