Android上的SQLite增强查询语法
我有以下SQLite查询,它在我的本地机器上非常有效:Android上的SQLite增强查询语法,android,sqlite,android-sqlite,fts3,Android,Sqlite,Android Sqlite,Fts3,我有以下SQLite查询,它在我的本地机器上非常有效: SELECT * FROM ftdata WHERE ftdata MATCH 'phrase1:this AND phrase2:that' 在我的Android设备上,这似乎不像在我的桌面上那样返回相同的结果集。它在Android上返回的结果要少得多。此查询似乎在以下两个方面都返回了正确的结果: SELECT * FROM ftdata WHERE ftdata MATCH 'phrase1:this phrase2:that' 然
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不支持增强查询语法的某些功能吗?我在第一个实例中使用了不正确的语法吗?不同的Android固件使用不同的语法,但FTS语法已经很长时间没有改变了 您的问题是大多数(所有?)Android供应商都没有启用增强的查询语法 您应该将自己限制为同时使用两种语法的查询。
或者,执行检查是否设置了
ENABLE\u FTS3\u括号。
。我有没有办法用MATCH做一个OR语句?即使这样也足够了。选择。。。在何处匹配联合选择。。。其中MATCH b
,它基本上运行两个搜索,然后在临时表的帮助下将它们组合起来。@CL.您知道启用括号选项是否取决于sdk版本或设备吗?因为新的sdk版本会获得新的sqlite版本,所以它应该依赖于sdk。我不确定这是否有意义,但我想知道什么时候可以只使用增强的查询语法。@MortenHolmgaard我在回答中解释了这一点。你不明白哪句话?“你的问题是大多数(所有?)安卓供应商都没有启用增强的查询语法。”你确定发布新安卓版本时是供应商而不是谷歌吗?