La méthode SQLite .query (), clause WHERE ne prend que les chaînes de guillemets doubles
J'ai une variable:
String owner="Mike";
String[] columns ={"quantity", "price","owner"}
Mon curseur est d'essayer d'obtenir
Cursor findEntry = db.query("sku_table", columns, "owner="+owner, null, null, null, null);
J'ai eu une erreur aucune colonne de ce type d'erreur
android.database.sqlite.SQLiteException: no such column: owner: , while compiling: SELECT quantity, price, owner, FROM sku_table WHERE owner=Mike
Mais si je prends cette requête:
SELECT quantity, price, owner, FROM sku_table WHERE owner=Mike
et ajouter ""
à Mike, et testé dans sqlite navigateurs pour exécuter la requête, je fais revenir à la ligne.
Le travail de la requête ressemble à ceci:
SELECT quantity, price, owner, FROM sku_table WHERE owner="Mike"
Quelqu'un peut-il déposer quelques idées sur comment puis-je intégrer des guillemets? Autres que d'utiliser \"
Merci!
source d'informationauteur sammiwei
Vous devez vous connecter pour publier un commentaire.
Désolé, mais c'est exactement la raison pourquoi vous devez travailler avec ce que la méthode offre! @Le leandros et @Jake aident dans le mauvais sens! Désolé de dire ça...
La seule solution que vous devez utiliser est: est-ce
ps: Oui je baisse voté les deux réponses qu'ils peuvent travailler, mais de fournir une solution qui ne doit pas être utilisé.
Mise à jour:
Si vous avez besoin de plus d'une condition, il suffit de l'ajouter comme vous le feriez dans un normal la requête
L'ordre de la
?
et lanew String[] {...}
éléments doivent être la même!SELECT quantity, price, owner, FROM sku_table WHERE owner='Mike'
c'est la bonne SÉLECTION. Vous oubliez le "' (guillemets simples)Je sais que c'est une vieille question, mais vous pouvez aussi faire comme ceci:
Cursor findEntry = db.query("sku_table", columns, "owner=\'"+owner+"\'", null, null, null, null);
Je l'ai fait dans mon application, et cela a fonctionné comme prévu.
De Jake réponse était similaire, mais ne serait probablement pas travailler sans les \ devant les '
la façon la plus simple est d'utiliser SELECT col1,col2 from nom_table where col = "quelque chose"; tout comme le leandros dit , mon problème était les guillemets simples , thnx