【发布时间】:2016-06-20 05:16:53
【问题描述】:
我在 VB.NET 中编写了一个“电影”程序
用户将能够创建自定义过滤器,他们可以根据类型、导演、发行年份等一些简单的信息,在列表中指定他们想看的电影。
桌上电影的:
ID Title Director Year Genres Description Image
由于一部电影(或电视节目)可以有更多类型,我最终将这些类型存储到一个带有 ; 的字符串中。作为分隔符。
例子:
a01;a02;b08;c01
当然,在检索结果时,我的应用程序会将 a01 转换为适当的“恐怖”或“惊悚”类型等。
我的问题是:是否可以创建一个执行过滤的 SQLite 查询?目前我正在创建如下查询:
SELECT *
FROM `movies`
WHERE (`Year` = 2013)
AND (`Genres` LIKE '%a02%' OR `Genres` LIKE '%g05%')
这可以解决问题,但是基于一些自定义过滤器,您最终可能会得到超过 10kb 字符的查询。
SQLite 中是否有某种 SPLIT 函数,以便我可以这样查询:
SELECT *
FROM `movies`
WHERE (`Year` = '2013')
AND (SPLIT(`Genres`,';') IN ('a01','v05','c01'))
任何帮助将不胜感激
【问题讨论】: