#android #sqlite #android-cursor #divide-by-zero
#Android #sqlite #android-курсор #деление на ноль
Вопрос:
По ошибке я поместил двойное значение, деленное на ноль, в столбец базы данных SQLite.
В «DB Browser» это выглядит как строка «Inf» или «inf». Однако «WHERE MY_COLUMN = ‘inf'» не дает результата.
Как я могу получить все записи, содержащие это значение, с помощью SQL-запроса?
Кроме того, как я могу определить это значение в цикле управления курсором?
Я пробовал эти:
cursor.getString(cursor.getColumnIndex(MY_COLUMN)).equalsIgnoreCase("inf")
cursor.getDouble(cursor.getColumnIndex(MY_COLUMN)) == Double.POSITIVE_INFINITY
Также нет результата.
Комментарии:
1. Какое
typeof()
значение? ТЕКСТОВЫЙ или РЕАЛЬНЫЙ?2. В базе данных столбец объявлен как ЧИСЛОВОЙ. Typeof() для значений, содержащих ‘inf’, возвращает ‘text’ как в «Браузере базы данных», так и в коде.
3. Шон, большое тебе спасибо за твою идею. Я только что добавил столбец выбора TYPE_COLUMN и запросил таблицу с помощью «TYPE_COLUMN = ‘text'». Это дало мне нужные записи. Если вы укажете это в качестве ответа, я приму его.
4. Оказалось, что значение ‘Inf’ имеет РЕАЛЬНЫЙ тип, а значение ‘inf’ имеет текстовый тип. Мне удалось обработать ТЕКСТОВЫЕ значения, однако я все еще пытаюсь найти в Google, как я могу выбрать реальные значения…
5. Попробуйте это: выберите * из my_table, где my_column * my_column = my_column и my_column != 0