sqlite全文通配符搜索

时间:2011-12-26 03:03:24

标签: sqlite

Sqlite FT3或FT4可以执行类似

的操作
SELECT * FROM MyTable WHERE body MATCH '*qlite'

我知道:

SELECT * FROM MyTable WHERE body MATCH 'Sqlite*'

有效,但似乎'%like'就像操作在全文中无效。

1 个答案:

答案 0 :(得分:3)

据我所知,这是FTS的一般限制,跨平台,后缀/后缀搜索是不可能的。

我见过的最好的解决方法是在MyTable中添加一个名为ReverseBody的列,并在其中存储Body列的反向,并将其添加到FT索引中。然后你写了像

这样的查询

从MyTable中选择*,其中反向匹配(REVERSE('qlite')+'*')

我在SQL Server中工作,所以我们内置了一个REVERSE。我不认为SQLite会这样做,但你可以添加自定义函数来执行它here