2

我有以下 SQLite 查询,它在我的本地机器上运行良好:

SELECT * FROM ftdata WHERE ftdata MATCH 'phrase1:this AND phrase2:that'

这似乎在我的 Android 设备上返回的结果集与在我的桌面上返回的结果集不同。它在 Android 上返回的结果要少得多。此查询似乎在两者上都返回了正确的结果:

SELECT * FROM ftdata WHERE ftdata MATCH 'phrase1:this phrase2:that'

但是,理想情况下,我希望将 AND 和 OR 查询结合起来,而不是被迫使用 AND。

Android 不支持增强查询语法的某些功能吗?我在第一个实例中使用了不正确的语法吗?

4

1 回答 1

2

不同的 Android 固件使用不同的 SQLite 版本,但 FTS 语法已经很久没有改变了。

您的问题是大多数(全部?)Android 供应商不启用增强的查询语法。

您应该限制自己使用两种语法的查询。或者,执行PRAGMA compile_options以检查是否ENABLE_FTS3_PARENTHESIS已设置。

于 2013-09-07T13:31:36.113 回答