SqlLite. Как воспользоваться оператором like?

Всем привет! Пытаюсь воспользоваться like'ом в sqllite и не получается сделать выборку из поля param При селекте это поле показывается как:

b'{"param1":"1","param2":"2"}'

И если написать запрос вида, то ничего не вернется((

select * from table where param like "%2%"

По другим полям like работает нормально. Подскажите, как лечить

Важное замечание - использую либу для питона sqlite3

Формат поля param text


Ответы (1 шт):

Автор решения: Ainar-G

Предположу, что при вставке в БД данным присваивается привязка к типу (англ. «type affinity») BLOB, а не TEXT. Со значениями с этой привязкой оператор LIKE либо не работает вообще, либо работает странно. Можете попробовать явное преобразование:

SELECT * FROM table WHERE CAST(param AS TEXT) LIKE '%2%';

Либо сразу вставляйте данные с привязкой TEXT. Как это делать должно быть написано в документации к вашей библиотеке.

Либо использовать расширение JSON1 для работы с JSON-данными.

→ Ссылка