2012-04-12 2 views
1
Cursor cursor = db.rawQuery("SELECT id,no,name,lastname FROM mytable WHERE " + 
            "id = (SELECT MIN(id) and no=0 FROM mytable); ",null); 

Я получаю эту ошибку внизу, не могли бы вы мне помочь?Ошибка: android.database.sqlite.SQLiteException: рядом с «WHERE»: синтаксическая ошибка: при компиляции:

То, что я хочу, чтобы получить запись, которая имеет мин Id, где нет = 0 в MyTable ....

Error:android.database.sqlite.SQLiteException: near "WHERE": syntax error: , while compiling:

ответ

3

, не зная, слишком много специфических особенностей о SQLite синтаксиса, я предположил бы, что ваш подзапрос ISN Отформатировано совершенно правильно.

Попробуйте

SELECT id, no, name, lastname FROM mytable WHERE 
     id = (SELECT min(ID) FROM mytable WHERE no = 0) 

или

SELECT id, no, name, lastname FROM mytable WHERE 
     id = (SELECT min(ID) FROM mytable) AND no = 0 

в зависимости от того, что была ваша интерпретация (но это звучит, как и первый). Первый будет возвращать строки с минимальным id с также no 0, но второй запрос будет возвращать минимальный id и затем использовать его, чтобы выбрать для строки с no из 0.

+0

+1 - однако, вы можете добавить объяснение того, какая разница между этими двумя утверждениями для дальнейшего уточнения. :) – Tim

+0

Спасибо, я сделал это редактирование (которое, надеюсь, не смутило вещи дальше). Я также просто проверил это в sqlite3 на моей локальной машине, и это кажется правильным. – ravuya

+0

Спасибо за ваши ответы, я попробовал это, курсор cursor = db.rawQuery ("SELECT id, no, name, lastname FROM mytable WHERE id = (SELECT min (ID) FROM mytable WHERE no = 0);", null) ; Но все же у меня есть сообщение об ошибке ..... android.database.CursorIndexOutOfBoundsException: запрошенный индекс -1 с размером 1 –

Смежные вопросы