首页 > 解决方案 > SQLite 将由逗号分隔的值的字符串转换为列表

问题描述

我有一个名为“languageids”的字段,其中可以包含多个 ID,例如 0、1、2、3 或单个值,例如 2。我需要能够选择具有特定 ID 的电影。我仅限于使用 SQLite 中可用的函数。我不允许重组现有数据库或修改条目。

结构

+----+-------+-------+-------------+
| id | title | genre | languageids |
+----+-------+-------+-------------+

示例数据

+----+-----------+-----------+--------------+
| id | title     | genre     | languageids  |
+----+-----------+-----------+--------------+
| 1  | "Movie 1" | "Action"  | "1,2,5,8,10" |
+----+-----------+-----------+--------------+
| 2  | "Movie 2" | "Romance" | "2,4"        |
+----+-----------+-----------+--------------+
| 3  | "Movie 3" | "Comedy"  | "3,8,21"     |
+----+-----------+-----------+--------------+

如果我要获取语言 id 为 2 的所有电影,我应该取回 ID 为 1 和 2 但不是 3 的电影。有没有什么地方可以将此字符串拆分为我可以执行的列表"languageId IN languageids"?如果没有,是否有替代解决方案?

标签: sqlsqlite

解决方案


你可以试试这个

select * from tablename where ',' || languageids || ',' like '%,2,%'

它会给你所有包含语言 id 2 的记录


推荐阅读