SQLite .query (), предложение WHERE принимает только строки двойных кавычек - PullRequest
12 голосов
/ 08 февраля 2012

У меня есть переменная:

String owner="Mike";
String[] columns ={"quantity", "price","owner"}

Мой курсор пытается получить
Cursor findEntry = db.query("sku_table", columns, "owner="+owner, null, null, null, null);

Я получил ошибку, нет такой ошибки столбца

android.database.sqlite.SQLiteException: no such column: owner: , while compiling: SELECT quantity, price, owner, FROM sku_table WHERE owner=Mike

Но если я возьму этот запрос:

SELECT quantity, price, owner, FROM sku_table WHERE owner=Mike

и добавление "" к Майку, и тестирование в браузерах sqlite для выполнения запроса, я возвращаюсь к строке. Рабочий запрос выглядит так:

SELECT quantity, price, owner, FROM sku_table WHERE owner="Mike"

Может кто-нибудь поделиться своими соображениями о том, как мне включить двойные кавычки? Кроме использования \ " Спасибо!

Ответы [ 6 ]

83 голосов
/ 08 февраля 2012

Извините, но именно поэтому вы должны работать с тем, что предлагает метод!@Leandros и @Jake помогают в совершенно неправильном направлении!Извините, что ...

Единственное решение, которое вы должны использовать, это:

Cursor findEntry = db.query("sku_table", columns, "owner=?", new String[] { owner }, null, null, null);

ps: Да, я проголосовал против обоих ответов, поскольку они могут работать, но предлагая решение, которое не должно

Обновление:

Если вам нужно более одного условия, просто добавьте его, как в обычном запросе

Cursor findEntry = db.query("sku_table", columns, "owner=? and price=?", new String[] { owner, price }, null, null, null);

Порядокэлементы ? и new String[] {...} должны быть одинаковыми!

2 голосов
/ 08 февраля 2012

SELECT quantity, price, owner, FROM sku_table WHERE owner='Mike' это правильный выбор.Вы забыли '' (одинарные кавычки)

1 голос
/ 07 февраля 2015
 public Cursor show_vol(String  vol,String bk,String hadnu)
           { 
              SQLiteDatabase db = this.getReadableDatabase();
              String[] columns ={"hadith"};//colums name that you select

              Cursor res = db.query("volume2", columns, "hadithno=?", new String[] { hadnu }, null, null, null);

 //volume2 is table name  and hadithno is colume name  l
//select hadith from volume2 where hadithno=hadnu  //working like s

 1. List item

              return res;
           }
1 голос
/ 08 февраля 2012
Cursor findEntry = db.query("sku_table", columns, "owner='"+owner+"'", null, null, null, null);
0 голосов
/ 13 апреля 2016

самый простой способ - использовать SELECT col1, col2 FROM table_name WHERE col = 'нечто';как сказал Леандрос , моя проблема заключалась в одинарных кавычках, thnx

0 голосов
/ 26 октября 2013

Я знаю, что это старый вопрос, но вы также можете сделать это так:

Cursor findEntry = db.query("sku_table", columns, "owner=\'"+owner+"\'", null, null, null, null);

Я только что сделал это в своем приложении, и все заработало, как и ожидалось.

Ответ Джейка был похожим, но, вероятно, не работал бы без \ до '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...