7
votes

Requête SQLite pour plusieurs valeurs dans une colonne

Je voulais faire de la requête dans la table pour un identifiant de champ avec des valeurs comme 1,5,4,11 qui proviendront de l'écran précédent en fonction de la sélection.

cursor = database.query(tablename,
                    new String[] { "TopName" }, "id =?", new String[]{"2,3"}, null, null, null);


0 commentaires

6 Réponses :


3
votes

Utilisez le dans l'opérateur au lieu de comparaison d'égalité (=).


0 commentaires

1
votes

Pour la section Selectargs, je pense que vous devez modifier: xxx

à xxx


2 commentaires

Ce n'est pas ce que l'OP recherche, et cela entraînerait une erreur car le nombre d'arguments fournis est différent du nombre de champs ? . La réponse de Volkerk est correcte.


Oh ok ... je vois ça maintenant. J'ai la même question que ud_an alors. Comment utilisez-vous l'opérateur "dans" dans la requête ci-dessus?



20
votes

Vous pouvez utiliser l'opérateur dans l'opérateur comme celui-ci,

cursor = database.query(tablename, new String[] {"TopName"}, "id IN(?,?)", 
                                        new String[]{"2","3"}, null, null, null);


1 commentaires

Et si nous voulons correspondre à une colonne de plus avec la même scène?



5
votes

Volkerk a été la première à répondre correctement à la question, mais pour des raisons d'exhaustivité, voici un exemple complet de la manière d'utiliser l'opérateur dans l'opérateur:

cursor = database.query(tablename,
                new String[] { "TopName" }, "id IN (?)", new String[]{"2,3"}, null, null, null);


0 commentaires

17
votes

La syntaxe correcte pour l'utilisation de l'opérateur dans l'opérateur dans l'exploitation de contenu de Android est la suivante: XXX PRE>

Alternativement, nous pouvons également utiliser, P>

cursor = database.query(contentUri, projection, "columnName IN(?)", new String[] {" 'value1' , 'value2' "}, sortOrder);


0 commentaires

0
votes

Je voudrais mettre cela ici puisqu'un Compendium de réponses m'a aidé à mettre plusieurs valeurs (inconnues) dans SQLITEDATABASE.Query () et la marque d'une seule question ne fonctionnait pas pour moi. L'espoir aide toute personne xxx

grâce à


0 commentaires