我有一个JSONB
列,其中有一个数组。我在下面有一个有效的查询。
但是,由于在EXAMPLESTRING
周围使用了双引号,导致我的语言特定实现失败。
以下是查询:
SELECT
b0."id",
b0."base_sku",
b0."name",
b0."logo",
b0."email",
b0."active",
b0."building_group_id",
b0."operating_region_id",
b0."building_package_id",
b0."metadata",
b0."location",
b0."inserted_at",
b0."updated_at"
FROM "buildings" AS b0
WHERE (b0."metadata"->'google_place_ids' @> '["EXAMPLESTRING"]')
AND (b0."active" = TRUE)
LIMIT 1
我正在寻找查询这一部分的替代方法:
@> '["EXAMPLESTRING"]')
还有其他写方法吗?
答案 0 :(得分:1)
在用框架或驱动程序解决此根本问题之前,您可能会度过非常不愉快的时光。
但是您可以解决以下问题:
@> jsonb_build_array('EXAMPLESTRING')
您还可以使用'to_jsonb'函数,但这可能会引入更多语法问题,以使您的驱动程序无法正常使用。