Mithilfe der COLLATE-in Android SQLite - Locales wird ignoriert in der LIKE-Anweisung

Beim erstellen meiner SQLite Datenbank in der Android ich habe die Datenbank-locale - db.setLocale(new Locale("cz_CZ")). Dies ist eine Tschechische Gebietsschema.

Einer SELECT-Anweisung funktioniert und nimmt das Gebietsschema berücksichtigt werden, zum Beispiel:

SELECT * from table WHERE name='sctzy' COLLATE LOCALIZED 

Finden Sie den Eintrag 'ščťžý'.

Aber WIE wird fail:

SELECT * from table WHERE name LIKE '%sctzy%' COLLATE LOCALIZED 

Wird keine Zeile zurückgegeben.

BTW. Es ist kein java.text.Normalisiert Klasse in Android. Ich dachte, ich könnte eine zweite Spalte mit einer normalisierten text, ohne spezielle Zeichen, die verwendet werden würde, für die Suche - aber ich bin fehlt eine Klasse oder die Art und Weise, wie Sie zu normalisieren, die String.

Ich fand eine partielle Antwort hier: stackoverflow.com/questions/3211974/..., Aber das ist nur, wie zu entfernen Akzenten. Ich würde eine doppelte Spalte in meiner Datenbank mit einem normalisierten text... gibt es nicht einen besseren Weg?

InformationsquelleAutor Daniel Novak | 2010-08-13

Schreibe einen Kommentar