• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
LOFLY
终其一生,编织快乐
博客园    首页    新随笔    联系   管理    订阅  订阅

SQLite-IN运算符

SQLite IN

SQLite IN 运算符确定某个值是否与列表或子查询中的任何值匹配。 IN 运算符的语法如下:

expression [NOT] IN (value_list|subquery);

SQLite IN运算符案例

image

以下语句使用 IN 运算符查询媒体类型 id 为 1 或 2 的歌曲。

SELECT
	TrackId,
	Name,
	Mediatypeid
FROM
	Tracks
WHERE
	MediaTypeId IN (1, 2)
ORDER BY
	Name ASC;

image

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);

posted @ 2024-07-18 10:37  编织快乐  阅读(51)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3