SQLite-IN运算符
SQLite IN
SQLite IN 运算符确定某个值是否与列表或子查询中的任何值匹配。 IN 运算符的语法如下:
expression [NOT] IN (value_list|subquery);
SQLite IN运算符案例

以下语句使用 IN 运算符查询媒体类型 id 为 1 或 2 的歌曲。
SELECT
TrackId,
Name,
Mediatypeid
FROM
Tracks
WHERE
MediaTypeId IN (1, 2)
ORDER BY
Name ASC;

SELECT
TrackId,
Name,
MediaTypeId
FROM
Tracks
WHERE
MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
Name ASC;
使用IN运算符进行子查询的案例
以下查询返回艺术家 ID 为 12 的专辑 ID 列表:
SELECT albumid
FROM albums
WHERE artistid = 12;
要获取属于艺术家 ID 12 的曲目,可以将 IN 运算符与子查询组合,如下所示:
SELECT
TrackId,
Name,
AlbumId
FROM
Tracks
WHERE
AlbumId IN (
SELECT
AlbumId
FROM
Albums
WHERE
ArtistId = 12
);
在这个例子中,
首先,子查询返回属于艺术家 ID 12 的专辑 ID 列表。
然后,外部查询返回专辑 ID 与子查询返回的专辑 ID 列表匹配的所有曲目。
SQLite NOT IN 的案例
以下语句返回类型 ID 不在 (1,2,3) 列表中的曲目列表。
SELECT
trackid,
name,
genreid
FROM
tracks
WHERE
genreid NOT IN (1, 2,3);
浙公网安备 33010602011771号