我在数据库中有以下字符串:
"[] some text [] 15" (other strings: "sometext15", "text", "[] [] another text []", "something else []").
括号是占位符。当我搜索字符串时,我不知道我应该在哪个位置或多少括号。我只知道,它们出现在单词之前/之后,用空格分隔。
因此,我希望使用以下搜索字词来查找此字符串:
"some text 15"
或
"some text [] 15"
或
"[] some text 15"
目前我的方法相当缓慢。我删除了搜索字符串中的所有括号,并将所有空格替换为“%”。
所以我的搜索查询如下所示:
SELECT ...
FROM ...
WHERE X LIKE '%some%text%15%'
从答案中我必须过滤出不合适的答案,例如“ sometext15 ”。
这很有效,但速度很慢。我必须提出很多疑问,所以速度至关重要。
对于针对此问题的优化/更好的查询或解决方案,您有什么想法吗?是否有更具体的查询?
谢谢!
标记
答案 0 :(得分:0)
我有以下建议: 创建一个包含ID和单词列的Lookup_table。然后在您的情况下将所需的所有表达式插入到该表中:
insert into Lookup_table (id, words) values
(1, 'some text 15'),
(2, 'some text [] 15'),
(3,'some text 15')
完成后,执行以下查询:
select * from YourTableName
where YourColumnName in (select Words from lookup_table)
由于Ms-Access不支持Contains函数,我觉得使用查找表会使它更快,因为它已被索引。