SqlLite. Как воспользоваться оператором like?
Всем привет! Пытаюсь воспользоваться like'ом в sqllite и не получается сделать выборку из поля param При селекте это поле показывается как:
b'{"param1":"1","param2":"2"}'
И если написать запрос вида, то ничего не вернется((
select * from table where param like "%2%"
По другим полям like работает нормально. Подскажите, как лечить
Важное замечание - использую либу для питона sqlite3
Формат поля param text
Ответы (1 шт):
Предположу, что при вставке в БД данным присваивается
привязка к типу (англ.
«type affinity»)
BLOB, а не TEXT. Со значениями
с этой привязкой оператор LIKE либо не работает
вообще, либо работает странно. Можете попробовать
явное преобразование:
SELECT * FROM table WHERE CAST(param AS TEXT) LIKE '%2%';
Либо сразу вставляйте данные с привязкой
TEXT. Как это делать должно быть написано
в документации к вашей библиотеке.
Либо использовать расширение JSON1 для работы с JSON-данными.