Метод SQLite.query(), предложение WHERE принимает только строки с двойными кавычками
У меня есть переменная:
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
и добавьте ""
в Mike и протестируйте в браузерах sqlite для выполнения запроса, я возвращаю строку.
Рабочий запрос выглядит так:
SELECT quantity, price, owner, FROM sku_table WHERE owner="Mike"
Кто-нибудь может рассказать о том, как включить двойные кавычки? Помимо использования \"
Благодарю!
Ответы
Ответ 1
Извините, но это именно то, почему вы должны работать с тем, что предлагает этот метод! @Leandros и @Jake помогают в совершенно неправильном направлении! Извините, что...
Единственное решение, которое вы должны использовать, следующее:
Cursor findEntry = db.query("sku_table", columns, "owner=?", new String[] { owner }, null, null, null);
ps: Да, я проголосовал за оба ответа, так как они могут работать, но не могут быть использованы.
Update:
Если вам нужно больше одного условия, просто добавьте его, как если бы вы делали обычный запрос
Cursor findEntry = db.query("sku_table", columns, "owner=? and price=?", new String[] { owner, price }, null, null, null);
Порядок элементов ?
и new String[] {...}
должен быть одним и тем же!
Ответ 2
SELECT quantity, price, owner, FROM sku_table WHERE owner='Mike'
это правильный SELECT. Вы забыли '' (одинарные кавычки)
Ответ 3
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;
}
Ответ 4
Cursor findEntry = db.query("sku_table", columns, "owner='"+owner+"'", null, null, null, null);
Ответ 5
Я знаю, что это старый вопрос, но вы также можете сделать это следующим образом:
Cursor findEntry = db.query("sku_table", columns, "owner=\'"+owner+"\'", null, null, null, null);
Я просто сделал это в своем приложении, и он работал, как ожидалось.
Ответ Джейка был похож, но, вероятно, не будет работать без\перед '
Ответ 6
Самый простой способ - использовать SELECT col1, col2 FROM table_name WHERE col = 'something'; точно так же, как Leandros, моя проблема заключалась в одинарных кавычках, thnx