@>'[“ TEXT”]'语法的替代方法

时间:2018-10-26 15:07:52

标签: postgresql

我有一个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"]')

还有其他写方法吗?

1 个答案:

答案 0 :(得分:1)

在用框架或驱动程序解决此根本问题之前,您可能会度过非常不愉快的时光。

但是您可以解决以下问题:

@> jsonb_build_array('EXAMPLESTRING')

您还可以使用'to_jsonb'函数,但这可能会引入更多语法问题,以使您的驱动程序无法正常使用。