Ich habe Schwierigkeiten, dieses "Googeln", aber hoffentlich ist es nicht zu schwierig für einen Experten (oder sogar ein Zwischenprodukt).SQLite und Room Persistence Library: Wie IN Zustand und LIKE kombinieren?
Gibt es eine Möglichkeit, nach einer Teilzeichenfolge innerhalb einer unbekannten Anzahl von mehreren OR-Bedingungen zu suchen?
Die ursprüngliche Abfrage für die Android SQLite Raum Persistence DAO ist:
SELECT country FROM table WHERE country IN (:searchList)
Welche, da ein search von [ 'Paris, Frankreich', 'Berlin, Deutschland'] zum SQL übersetzen würde:
SELECT country FROM table WHERE country IN ('Paris, France', 'Berlin, Germany');
Und zurückkehren würde: [ 'Paris, Frankreich', 'Berlin, Deutschland']
Allerdings würde Ich mag nur um das Land suchen kann. Bei einer Suchliste von ['France', 'Germany'] zum Beispiel bekomme ich leider kein Ergebnis.
Ich verstehe die folgende SQL den Trick tun würde:
SELECT country FROM table WHERE country LIKE '%France%' OR country LIKE '%Germany%';
jedoch, weil ich weiß nicht, wie viele Elemente in der search wäre, muss ich das Original-Format verwenden:
SELECT country FROM table WHERE country IN (:searchList)
Gibt es eine Möglichkeit, die obige Suche nach einem Teilstring innerhalb der Spalte Land zu machen?
Vielen Dank für Ihre Hilfe,
Dan
Seit Androiden SQLite (Version) nicht regexp in der Suchanfrage unterstützen möchten können Sie die Liste aufzuspalten (: search) zu einzelnen Wörtern stattdessen? Beispiel: https://stackoverflow.com/questions/41678776/substring-for-sqlite-android –
Ich hatte gehofft zu vermeiden, searchList zu teilen, denn dann müsste ich mehrere Aufrufe an die DB - eine für jedes Element der searchList . – danwag