SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

SQLite IN

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android:onUpgrade không gọi khi nâng cấp cơ sở dữ liệu

  2. SQLiteException:bảng đã tồn tại

  3. Cách lấy dữ liệu từ cơ sở dữ liệu và xem chúng dưới dạng ListView

  4. Hàm Ngày &Giờ trong SQLite

  5. SQLite JSON ()