J'ai du mal à "googler" celui-ci, mais j'espère que ce n'est pas trop compliqué pour un expert (ou même un intermédiaire).Bibliothèque SQLite et persistance des salles: comment combiner les conditions IN et LIKE?
Existe-t-il un moyen de rechercher une sous-chaîne dans un nombre inconnu de plusieurs conditions OU?
La requête originale pour la chambre SQLite Android Persistance OAC est:
SELECT country FROM table WHERE country IN (:searchList)
qui, étant donné un ListeRecherche de [ 'Paris, France', 'Berlin, Allemagne'] se traduirait par le SQL:
SELECT country FROM table WHERE country IN ('Paris, France', 'Berlin, Germany');
Et renverrait: [ 'Paris, France', 'Berlin, Allemagne']
Cependant, je voudrais être en mesure de rechercher par tout le pays. Par exemple, étant donné une liste de recherche de ['France', 'Allemagne'], je n'ai malheureusement aucun résultat.
Je comprends l'instruction SQL suivante ferait l'affaire:
SELECT country FROM table WHERE country LIKE '%France%' OR country LIKE '%Germany%';
Cependant, parce que je ne sais pas combien d'éléments seraient dans LISTERECHERCHEE, je dois utiliser le format d'origine:
SELECT country FROM table WHERE country IN (:searchList)
Est-il possible de faire la recherche ci-dessus pour une sous-chaîne dans la colonne de pays?
Un grand merci pour votre aide,
Dan
Depuis androïdes SQLite (version) ne supporte pas regexp dans la requête de recherche vous pouvez vouloir diviser la liste (: ListeRecherche) à des mots simples à la place? Exemple: https://stackoverflow.com/questions/41678776/substring-for-sqlite-android –
J'espérais éviter de scinder searchList, car alors je devais effectuer plusieurs appels à la DB - un pour chaque élément de searchList . – danwag