Использование функций, возвращающих множество в предложениях WHERE - PullRequest
0 голосов
/ 23 февраля 2020
SELECT * from users where server_id=$1 and $2=ANY(json_object_keys(contacts));

ERROR:  set-returning functions are not allowed in WHERE

contacts - это столбец json, и мне нужно найти строки с $2 в их contacts 'ключах.

Пример столбца контактов: {"90144": 0, "89915": 0}

Если $2 равен 90144, запрос должен возвращать каждую строку, содержащую 90144 в их contacts 'ключах, как в примере. Как я мог этого добиться? Заранее спасибо.

1 Ответ

1 голос
/ 23 февраля 2020

Использовать ? оператор .

SELECT * from users where server_id=$1 and contacts::jsonb ? $2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...