2012-12-11 14 views
6

W Androidzie Jellybean 4.1 można uciec z LIKE wieloznacznej postaci i nadal korzystać z indeksu?Android SQLite LIKE escape wildcard

Zastosowanie:

where field like 'xyz\_abc' 

w przeciwieństwie do:

where field like 'xyz_abc' 

Czy uchodzące symbole wieloznaczne działa na Androidzie? I czy nadal będzie korzystał z indeksu, jeśli symbol wieloznaczny zostanie usunięty?

Co jestem obecnie robi to:

where field like 'xyz_abc' and lower(field) = lower('xyz_abc') 

Która jest straszliwie nieskuteczny ze względu na symbol wieloznaczny.

Dzięki

+0

http://stackoverflow.com/questions/9076561/android-sqlitededabase-query-withlike tam spojrzysz, to ci pomoże! – Pavlos

+0

Jeśli nie chcesz, aby '_' był symbolem wieloznacznym,' pole 'xyz_abc'' powinno być' field = 'xyz_abc''. "LIKE" nie jest użyteczne bez co najmniej jednego symbolu wieloznacznego. – Sam

+0

Dzięki, ale kolumna jest niewidoczna. Dane źródłowe mogą być dowolne, np. "Xyz_abc" lub "xyz_Abc" jednak w kolumnie będzie tylko JEDEN niższy ("XyZ_AbC"). Próbuję uniknąć pisania poprawki, aby zmodyfikować bazę danych i przekonwertować wszystko na małe litery. –

Odpowiedz