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

MySQL SELECT nhiều giá trị: dùng OR hay IN?

Để chọn nhiều giá trị, dùng mệnh đề WHERE với toán tử OR hoặc IN.

Trường hợp 1: Dùng OR

SELECT * FROM ten_bang WHERE cot = gt1 OR cot = gt2 OR cot = gt3 ...;

Trường hợp 2: Dùng IN (khuyên dùng)

SELECT * FROM ten_bang WHERE cot IN (gt1, gt2, gt3, ...);

Ví dụ: tạo bảng selectMultipleValues:

mysql> CREATE TABLE selectMultipleValues (
    -> BookId INT,
    -> BookName VARCHAR(200)
    -> );

Chèn dữ liệu:

mysql> INSERT INTO selectMultipleValues VALUES 
(100, 'Introduction to C'), (101, 'Introduction to C++'), (103, 'Introduction to java'),
(104, 'Introduction to Python'), (105, 'Introduction to C#'), (106, 'C in Depth');

Dữ liệu gốc:

mysql> SELECT * FROM selectMultipleValues;
+--------+------------------------+
| BookId | BookName               |
+--------+------------------------+
| 100    | Introduction to C      |
| 101    | Introduction to C++    |
| 103    | Introduction to java   |
| 104    | Introduction to Python |
| 105    | Introduction to C#     |
| 106    | C in Depth             |
+--------+------------------------+

Dùng OR:

mysql> SELECT * FROM selectMultipleValues WHERE BookId = 104 OR BookId = 106;
+--------+------------------------+
| BookId | BookName               |
+--------+------------------------+
| 104    | Introduction to Python |
| 106    | C in Depth             |
+--------+------------------------+

Dùng IN (ngắn gọn, dễ đọc, tối ưu hơn):

mysql> SELECT * FROM selectMultipleValues WHERE BookId IN (104, 106);

Kết quả giống hệt nhau. Nên dùng IN cho nhiều giá trị.