【问题标题】:How to query a full JSON array in PostgreSQL?如何在 PostgreSQL 中查询完整的 JSON 数组?
【发布时间】:2019-07-10 12:10:23
【问题描述】:

我想在 PostgreSQL 中查询一个完整的 JSON 数组(例如,检查表中是否有一个与我的输入 JSON 数组匹配的 JSON 数组)

在 MySQL 中我曾经这样做过:

SELECT * from <table> where <column> = JSON_ARRAY("A", "B", "C", "D", "E");

在 Laravel 中:

return $this->whereRaw("<column> = JSON_ARRAY(" . "'" . implode("','", json_encode(explode(',', preg_replace('/\s+/', '', $input)))) . "'" . ")");

而且它运行良好(尽管 Laravel 中的代码可能不是最好的方法,在这种情况下,我愿意接受有关如何改进代码的建议)。我想知道 PostgreSQL 中的一个查询,其行为方式与我编写的 MySQL 查询完全相同。

提前致谢。

【问题讨论】:

  • 请注意,如果您要切换到 Postgres,您还必须更改 .env 文件中的 DB 驱动程序等。
  • 我确实首先查看了 JSON 函数,是的,但我没有找到与我想要的匹配的函数。我还在 Laravel 中相应地更改了 DB 驱动程序。
  • 你能提供$input和你需要的结果吗?

标签: php sql laravel postgresql


【解决方案1】:

我想通了。

select * from <table> where <column> = to_jsonb(array['A', 'B', 'C', 'D']);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    相关资源
    最近更新 更多