SQLite оператор работает в редакторе баз данных, но не Android - PullRequest
0 голосов
/ 01 апреля 2012

Может быть, это простая проблема, но я просто не вижу ее:)

В моей базе данных есть два поля с именами NoRide и NoAttempt.

В одной строке у меня NoRide = 40 и NoAttempt = 40.

У меня нет проблем, когда я выполняю запрос непосредственно в базу данных, используя:

SELECT * FROMMyTable WHERE NoRide = NoAttempt

Однако в Android я обернул эту точную строку в оператор rawQuery и не получил результатов.Точно так же, если я делаю такие вещи, как

rawQuery ("SELECT * FROM MyTable WHERE NoRide - NoAttempt! = '0'", null);

Я также не получаю данных, когда этот запрос работает нормально в запросе к базе данных.

Есть ли что-то другое с rawQuery в Android, которого мне не хватает?

Ответы [ 2 ]

1 голос
/ 01 апреля 2012

Я не знаю, что происходит с первой частью вашего вопроса (NoRide = NoAttempt), но у меня есть представление о второй проблеме.

Попробуйте удалить одиночную кавычку из 0 ... база данных, вероятно, думает, что вы пытаетесь сравнить int со строкой. Лиза так:

rawQuery("SELECT * FROM MyTable WHERE NoRide - NoAttempt != 0", null); 
0 голосов
/ 01 апреля 2012

Попробуйте это

rawQuery("SELECT NoRide, NoAttempt FROM MyTable 
WHERE IFNULL(NoRide,0) - IFNULL(NoAttempt,0) <> 0", NULL);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...