String[] columns = new String[]{ KEY_NAME, KEY_NUM };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_NAME + "=" + name, null, null, null, null);
Это код, который я использую для возврата тех столбцов, которые соответствуют определенной строке, которую я передал в i.e. name. Однако это не работает. Кроме того, если я заменил предложение where на null, все строки вернутся правильно. Пожалуйста помоги. Благодаря!WHERE предложение в Android SQLite
Строки исходной таблицы, таким образом,
public static final String KEY_ROWID = "_id";
public static final String KEY_NAME = "surveyString";
public static final String KEY_NUM = "numOfQuestions";
Это не совсем связано с вашим вопросом, но в любое время я вижу конкатенации в запросе, это сильный показатель его уязвимости к [инъекции SQL] (https: // эн. wikipedia.org/wiki/SQL_injection). Подумайте, посмотрите на какую-то подготовленную инструкцию. – Makoto
Подготовленные утверждения не могут использоваться для запросов. Следующая лучшая альтернатива - я думаю, используя rawQuery, который тоже не работает. –
Вы уверены, что 'name' действительно точно соответствует значению в вашей базе данных? Если вы замените '+" = "+ name" на '+" LIKE% "+ name +"% "', то результат тот же? – jbihan