【发布时间】:2014-05-15 22:12:02
【问题描述】:
我有一个 sqlite 数据库,其中包含带有随机分隔符的数字序列。例如
_id data
0 123-45/678>90
1 11*11-22-333
2 4-4-5-67891
我希望能够使用和不使用分隔符“智能地”查询数据库。例如,这两个查询都返回 _id=0
SELECT _id FROM myTable WHERE data LIKE '%123-45%'
SELECT _id FROM myTable WHERE data LIKE '%12345%'
第一个查询按原样工作,但第二个查询是问题所在。因为分隔符随机出现在数据库中,所以搜索词中的组合太多,无法循环。
我可以创建两列,一列有分隔符,一列没有,对每一列运行每个查询,但数据库很大,所以我想尽可能避免这种情况。
有什么方法可以构造第二个查询来实现这一点吗?查询期间每一行的正则表达式之类的东西?伪代码
SELECT _id
FROM myTable
WHERE REPLACEALL(data,'(?<=\\d)[-/>*](?=\\d)','') LIKE '%12345%'
【问题讨论】:
-
为什么“庞大”的数据库会让您不想再添加一列?