【发布时间】: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