我有一个由各种对象组成的jsonb数据列。
{"LicensePlates": {"Type": "LicensePlateList", "Value": ["XXXXX"]}, "SubscriptionInfo": {"Type": "SubscriptionInfoList", "Value": [{"id": "1", "lastname": "rossi", "firstname": "paola"}, {"id": "2", "lastname": "Scicolone", "firstname": "Paolo"}]}}
现在我在SubscriptionInfo
键中搜索一个特定的信息,如下所示:
SELECT * FROM column WHERE (data -> 'SubscriptionInfo') -> 'Value' @> '[{"firstname": "Paolo"}]';
它工作正常,但我也想搜索“部分”信息,例如,搜索字符串“pa”(使用IIKE或其他类似的东西)应该返回整个记录。这可能吗?
2条答案
按热度按时间esyap4oy1#
您有两个选项(demo)
1.将数据转换为小写
1.使用交叉连接并提取JSON,然后使用
ilike
thtygnil2#
如果您使用的是Postgres 13或更高版本,则可以使用SQL/JSON路径表达式: