SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite IN

Резюме :в този урок ще научите как да използвате SQLite IN оператор, за да определи дали дадена стойност съвпада с някоя стойност в списък със стойности или резултат от подзаявка.

Въведение в SQLite IN оператор

SQLite IN операторът определя дали дадена стойност съвпада с която и да е стойност в списък или подзаявка. Синтаксисът на IN операторът е както следва:

expression [NOT] IN (value_list|subquery);Code language: SQL (Structured Query Language) (sql)

expression може да бъде всеки валиден израз или колона от таблица.

Списъкът със стойности е списък с фиксирани стойности или набор от резултати от една колона, върнати от подзаявка. Върнатият тип израз и стойностите в списъка трябва да са еднакви.

IN Операторът връща true или false в зависимост от това дали изразът съвпада с някоя стойност в списъка със стойности или не. За да отмените списъка със стойности, използвате NOT IN оператор.

SQLite IN примери за оператор

Ще използваме Tracks таблица от примерната база данни за демонстрацията.

Следното изявление използва IN оператор за запитване на песните, чийто идентификатор на тип носител е 1 или 2.

SELECT
	TrackId,
	Name,
	Mediatypeid
FROM
	Tracks
WHERE
	MediaTypeId IN (1, 2)
ORDER BY
	Name ASC;Code language: SQL (Structured Query Language) (sql)

Опитайте го

Тази заявка използва OR оператор вместо IN оператор, за да върне същия набор от резултати като горната заявка:

SELECT
	TrackId,
	Name,
	MediaTypeId
FROM
	Tracks
WHERE
	MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
	Name ASC;Code language: SQL (Structured Query Language) (sql)

Опитайте го

Както можете да видите от заявките, с помощта на IN операторът е много по-кратък.

Ако имате заявка, която използва много OR оператори, можете да обмислите използването на IN вместо оператор, за да направи заявката по-четлива.

SQLite IN оператор с пример за подзаявка

Следната заявка връща списък с идентификатор на албума на изпълнителя 12:

SELECT albumid
FROM albums
WHERE artistid = 12;Code language: SQL (Structured Query Language) (sql)

Опитайте го

За да получите песните, които принадлежат на идентификатор на изпълнителя 12, можете да комбинирате IN оператор с подзаявка, както следва:

SELECT
	TrackId, 
	Name, 
	AlbumId
FROM
	Tracks
WHERE
	AlbumId IN (
		SELECT
			AlbumId
		FROM
			Albums
		WHERE
			ArtistId = 12
	);Code language: SQL (Structured Query Language) (sql)

Опитайте го

В този пример:

  • Първо, подзаявката връща списък с идентификатори на албуми, които принадлежат на идентификатор 12 на изпълнителя.
  • След това външната заявка връща всички записи, чийто идентификатор на албума съвпада със списъка с идентификатори на албума, върнат от подзаявката.

SQLite НЕ В примери

Следното изявление връща списък с песни, чийто идентификатор на жанра не е в списък от (1,2,3).

SELECT
	trackid,
	name,
	genreid
FROM
	tracks
WHERE
	genreid NOT IN (1, 2,3);Code language: SQL (Structured Query Language) (sql)

Опитайте го

В този урок научихте как да използвате SQLite IN оператор за съпоставяне на стойност със списък със стойности или подзаявка.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да обработваме булеви стойности в SQLite с помощта на прокси сървъри на JavaScript

  2. Урок за SQLite:Всичко, което трябва да знаете

  3. SQLite подзаявка

  4. SQLite Създаване на таблица

  5. Грешка на SQLiteConstraintException се показва след стартиране на всяка дейност