Имеется таблица с полем типа json. Таблица заполнена значениями вида [123,854,12], [], [12,2142141,24] Как мне выбрать строку, в json которой содержится определенное число? Т.е. если я ищу 12, то я должен получить две строки со значениями, перечисленными выше.
Ответ
Если вы задействуете PostgreSQL вам разумнее воспользоваться не JSON, a типом ARRAY
CREATE TABLE tbl (
id INTEGER,
name INTEGER ARRAY
);
INSERT INTO tbl VALUES (1, '{123,854,12}');
INSERT INTO tbl VALUES (2, '{}');
INSERT INTO tbl VALUES (3, '{12,2142141,24}');
Тогда для поиска строк, в массиве name которых имеется значение 12 можно воспользоваться следующим запросом
SELECT * FROM tbl WHERE 12 = ANY (name);
id | name
----+-----------------
1 | {123,854,12}
3 | {12,2142141,24}
Комментариев нет:
Отправить комментарий