Меня несколько озадачивают следующие простые утверждения.
create table Test(id integer, data json);
insert into Test(id, data) values(1, '{"name": "vova"}');
select * from Test
where json_extract(data, "$.name") IN ("vova", "mark");
Здесь select ничего не возвращает. Однако запрос возвращает ожидаемую строку, если я оставлю один элемент в массиве:
select * from Test
where json_extract(data, "$.name") IN ("vova");
'json_extract' и 'where in' не нравятся друг другу? Или я, наверное, что-то упускаю?
Вот ссылка с примером. Поведение такое же, когда я запускаю запросы локально.