У меня есть таблица, как показано ниже
date | tags
------------+----------------------------------------------------------------------------------------------------------
2018-10-24 | {"table": "bank_trans", "metric": "withdrawal", "location": "UK"}
2018-10-24 | {"table": "bank_trans", "metric": "balance", "account_id": "477", "location": "ny", "country": "USA"}
2018-10-24 | {"table": "bank_trans", "metric": "deposit", "location": "blr", "country": "IND"}
2018-11-02 | {"table": "bank_trans", "metric": "balance", "account_id": "477"}
Если я хочу конкретную строку, которая содержит шаблон поиска, как показано ниже
select date, tags
from webhook_forecastmodel
where tags LIKE '%"table": "bank_trans"%' AND
tags LIKE '%"metric": "balance"%' AND
tags LIKE '%"account_id": "477"%';
В этом случае я получаю два результата
date | tags
------------+----------------------------------------------------------------------------------------------------------
2018-10-24 | {"table": "bank_trans", "metric": "balance", "account_id": "477", "location": "ny", "country": "USA"}
2018-11-02 | {"table": "bank_trans", "metric": "balance", "account_id": "477"}
Я понимаю, что запрос SQL возвращает мне строки, в которых соответствует шаблон.
Но мне нужна только строка, точно указанная в шаблоне поиска LIKE
, которая "table": "bank_trans"
, "metric": "balance"
и "account_id": "477"
, которая оставляет нам только одну строку
2018-11-02 | {"table": "bank_trans", "metric": "balance", "account_id": "477"}
Есть ли какой-нибудь возможный способ, которым это могло бы быть достигнуто?