sql - 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"
?如果没有,是否有替代解决方案?
解决方案
你可以试试这个
select * from tablename where ',' || languageids || ',' like '%,2,%'
它会给你所有包含语言 id 2 的记录
推荐阅读
- scala - Scala 格式化元组字符串到元组
- sql - SQL 十六进制字符串转十进制值
- java - 为什么我的 if else 语句不能按预期工作?输入问题
- python - 如果它包含在另一个字符串列中,则从列表中获取字符串
- pandas - 记录具有特定值的列的名称并连接在单个字符串中
- c# - c#/vb Stack Overflow Exception on相对较小的调用堆栈
- java - 如何使用 checkstyle 或 PMD 强制执行构造函数注入?
- javascript - Discord bot命令不起作用返回错误
- python - Sanic Python:将文件发送到客户端后删除
- python - 在 windows 中使用 cv2 保存视频并播放