Tóm tắt :trong hướng dẫn này, bạn sẽ học cách sử dụng IN
của SQLite toán tử để xác định xem một giá trị có khớp với bất kỳ giá trị nào trong danh sách các giá trị hay kết quả của một truy vấn con hay không.
Giới thiệu về SQLite IN
toán tử
SQLite IN
toán tử xác định xem một giá trị có khớp với bất kỳ giá trị nào trong một danh sách hay một truy vấn con hay không. Cú pháp của IN
toán tử như sau:
expression [NOT] IN (value_list|subquery);
Code language: SQL (Structured Query Language) (sql)
Biểu thức expression
có thể là bất kỳ biểu thức hợp lệ nào hoặc một cột của bảng.
Danh sách giá trị là danh sách giá trị cố định hoặc tập kết quả của một cột duy nhất được trả về bởi truy vấn con. Loại biểu thức được trả về và các giá trị trong danh sách phải giống nhau.
IN
toán tử trả về true hoặc false tùy thuộc vào việc biểu thức có khớp với bất kỳ giá trị nào trong danh sách các giá trị hay không. Để phủ định danh sách các giá trị, bạn sử dụng NOT IN
nhà điều hành.
SQLite IN
ví dụ về toán tử
Chúng tôi sẽ sử dụng Tracks
bảng từ cơ sở dữ liệu mẫu cho cuộc trình diễn.
Câu lệnh sau sử dụng IN
toán tử để truy vấn các tuyến đường có id loại phương tiện là 1 hoặc 2.
SELECT
TrackId,
Name,
Mediatypeid
FROM
Tracks
WHERE
MediaTypeId IN (1, 2)
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Truy vấn này sử dụng OR
thay vì IN
toán tử để trả về tập kết quả giống như truy vấn trên:
SELECT
TrackId,
Name,
MediaTypeId
FROM
Tracks
WHERE
MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
Name ASC;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Như bạn có thể thấy từ các truy vấn, sử dụng IN
toán tử ngắn hơn nhiều.
Nếu bạn có một truy vấn sử dụng nhiều OR
, bạn có thể xem xét sử dụng IN
thay vào đó để làm cho truy vấn dễ đọc hơn.
SQLite IN
toán tử với một ví dụ truy vấn con
Truy vấn sau đây trả về danh sách id album của id nghệ sĩ 12:
SELECT albumid
FROM albums
WHERE artistid = 12;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Để nhận các bản nhạc thuộc về id nghệ sĩ 12, bạn có thể kết hợp IN
toán tử với một truy vấn con như sau:
SELECT
TrackId,
Name,
AlbumId
FROM
Tracks
WHERE
AlbumId IN (
SELECT
AlbumId
FROM
Albums
WHERE
ArtistId = 12
);
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Trong ví dụ này:
- Đầu tiên, truy vấn con trả về danh sách id album thuộc về id nghệ sĩ 12.
- Sau đó, truy vấn bên ngoài trả về tất cả các bản nhạc có id album khớp với danh sách id album do truy vấn phụ trả về.
SQLite NOT IN ví dụ
Câu lệnh sau trả về danh sách các bản nhạc có id thể loại không có trong danh sách (1,2,3).
SELECT
trackid,
name,
genreid
FROM
tracks
WHERE
genreid NOT IN (1, 2,3);
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Trong hướng dẫn này, bạn đã học cách sử dụng SQLite IN
toán tử để khớp một giá trị với một danh sách các giá trị hoặc một truy vấn con.