Android. SQLite некорректно работает SELECT WHERE

Рейтинг: 1Ответов: 2Опубликовано: 24.04.2015

Получил странное поведение SQLite на Android.

Выполняю запрос:

SELECT * FROM objects WHERE company_id = 8

и получаю 0 результатов, хотя строки с company_id равным 8 есть!


Для проверки решил сделать иначе. На запрос

SELECT * FROM objects WHERE company_id = 8 OR company_id = 1

получил строки с company_id = 1 и company_id = 8. А на запрос

SELECT * FROM objects WHERE company_id = 1

получил строки только с company_id = 1.


Код запроса:

Cursor cursor = db.query(DBContract.ObjectEntry.TABLE_NAME, null, filter, 
                         null, null, null, null,null );

filter - это company_id = 8 OR company_id = 1.

Где я допустил ошибку? Через SQLite DB Browser все работает.

Прикладываю базу:

https://www.dropbox.com/s/6ijguvfkhaa73rb/azs.db?dl=0

Программа-смотрелка http://sqlitebrowser.org/

Ответы

▲ 3Принят

Очистил данные приложения, удалил его, сбросил номер версии базы до 1 поставил - внезапно запустилось и правильно работает.

▲ 1

Попробуй использовать метод rawQuery вместо query, в этом методе напрямую можно указать строку запроса как с SQL-студии. Хороший пример здесь