sqlite全文通配符搜索

use*_*144 6 sqlite

Sqlite FT3 或 FT4 可以做类似的事情吗

SELECT * FROM MyTable WHERE body MATCH '*qlite'
Run Code Online (Sandbox Code Playgroud)

我知道这个:

SELECT * FROM MyTable WHERE body MATCH 'Sqlite*'
Run Code Online (Sandbox Code Playgroud)

工作,但似乎'%like'操作在全文中不起作用。

Tet*_*Sig 4

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

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

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

我在 SQL Server 中工作,所以我们内置了 REVERSE。我认为 SQLite 没有,但您可以添加自定义函数来执行此操作,如此处所述