我想选择表中的所有行,其中“ object_details” JSON字段包含以下键之一:“主题”,“主题”,“主题”。
具有以下示例行:
datetime | object_details
---------------------+------------------------------------------------------------
2019-07-21T00:01:34Z | {"Sender": "bob@example.com", "Subject": "First email!"}
2019-07-23T09:30:01Z | {"Sender": "carol@example.com", "subject": "Second email!"}
2019-07-27T22:23:15Z | {"Sender": "dave@example.com", "protocol": "SMTP"}
我希望结果仅提供以下行:
datetime | object_details
---------------------+------------------------------------------------------------
2019-07-21T00:01:34Z | {"Sender": "bob@example.com", "Subject": "First email!"}
2019-07-23T09:30:01Z | {"Sender": "carol@example.com", "subject": "Second email!"}
答案 0 :(得分:2)
您可以使用存在运算符?|
,该运算符将一组键作为其输入:
select *
from the_table
where object_details ?| array['subject', 'Subject', 'SUBJECT'];
答案 1 :(得分:-1)
使用MySQL可以使用以下语法完成
。 SELECT *
FROM the_table
WHERE LOCATE("subject", object_details) > 0 ;
PostgreSQL是(PostgreSQL区分大小写):-
SELECT *
FROM the_table
WHERE POSITION('subject' IN LOWER(object_details)) > 0;