sqlite全文通配符搜索

标签 sqlite

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

SELECT * FROM MyTable WHERE body MATCH '*qlite'

我知道这个:
SELECT * FROM MyTable WHERE body MATCH 'Sqlite*'

有效,但似乎是 '%like'像操作在全文中不起作用。

最佳答案

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

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

select * from MyTable where reversebody match (REVERSE('qlite') + '*')

我在 SQL Server 中工作,所以我们有一个内置的 REVERSE。我认为 SQLite 没有,但是您可以添加自定义函数来完成它的描述 here

关于sqlite全文通配符搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8632678/

相关文章:

android - Sqlite 不返回此类表,但在 OnePlusTwo 设备上获取时存在表

c++ - 如何在 SQLite 数据库中存储枚举

java - 在android studio中查看sqlite数据库

android - Android 上的随机 SQLiteConnectionPool 错误。如何避免?

android - 如何在 Android 中使用 SQLiteDatabase 将数据同时插入到两个表中?

Android、SQLite 连接和事务

iphone - 在iOS应用程序中显示 "Tip of the day"(不使用服务器)

python - 带有 Python "Table has X columns but Y were supplied"的 SQLite

iphone - 以编程方式使用 ios-core 数据创建新表

ios - 核心数据 后台慢速和后台保存、sqlite后台和mergeChangesFromContextDidSaveNotification