Android SQLite LIKE转义通配符

Row*_*ith 7 sqlite android android-sqlite

在Android Jellybean 4.1上是否有可能逃避LIKE通配符并仍然喜欢使用索引?

使用:

where field like 'xyz\_abc'
Run Code Online (Sandbox Code Playgroud)

而不是:

where field like 'xyz_abc'
Run Code Online (Sandbox Code Playgroud)

逃避通配符是否适用于Android?如果通配符被转义,它还会使用索引吗?

我目前正在做的是:

where field like 'xyz_abc' and lower(field) = lower('xyz_abc')
Run Code Online (Sandbox Code Playgroud)

由于通配符,这是非常低效的.

谢谢

Bri*_*ham 17

您需要使用以下ESCAPE条款:

where field like 'xyz\_abc' escape '\'
Run Code Online (Sandbox Code Playgroud)

请参阅SQLite文档中的LIKE和GLOB运算符部分.