mydb.execSQL("CREATE TABLE IF NOT EXISTS customer " + " (id INT(10) NOT NULL , name_surname VARCHAR (50) NOT NULL , card INT(10) NOT NULL , PRIMARY KEY(id));");
mydb.execSQL("INSERT INTO customer (id, name_surname , card) VALUES ('194', 'aaa' , '21');");
Cursor cursor = ajcinemaDB.rawQuery("SELECT * FROM customer WHERE name_surname=? " , new String[] {"aaa"});
int idColumn = cursor.getColumnIndex("id");
int name_surnameColumn = cursor.getColumnIndex("name_surname");
int cardColumn = cursor.getColumnIndex("card");
cursor.moveToFirst();
if(cursor != null && (cursor.getCount() > 0)){
do {
String id = cursor.getString(idColumn);
String name_surname = cursor.getString(name_surnameColumn);
String card = cursor.getString(cardColumn);
custinfo = custinfo + card + "\n";
}while(cursor.moveToNext());
} else {
Toast.makeText(this, "No Results ", Toast.LENGTH_SHORT).show();
}
Почему это, где предложение ничего не возвращает?Предложение SQLite WHERE не работает с VARCHAR
Это конкретное предложение работает для id (int), но не для name_surname (varchar).
Я пробовал регулярный и сырой запрос также, те же результаты.
Любые идеи?
Возможный дубликат [Как форматировать условие WHERE и '?' в SQLite-запросе?] (http://stackoverflow.com/questions/5276099/how-to-format-the-where-clause-and-in-a-sqlite-query) –
Это не дублирование, это особенно о rawQuery и VARCHAR. – Alkiviadis95
Неважно, если речь идет о VARCHAR. Запрос - это запрос и использование обычного метода запроса, а не rawQuery может привести к правильным результатам. –