gpt4 book ai didi

php - PostgreSQL json 在 PHP Yii2 中选择查询替换

转载 作者:搜寻专家 更新时间:2023-10-31 20:38:30 26 4
gpt4 key购买 nike

在 PHP Yii2 中是否有任何替代此查询的方法?

SELECT * FROM my_table WHERE my_column ?& array['2', '1', '3', '4'];

my_column = jsonb

因为我得到这个错误

Error Info: Array
(
[0] => 42601
[1] => 7
[2] => ERROR: syntax error at or near "$1"
LINE 1: SELECT * FROM my_table WHERE my_column $1& array['2', '1', '3', '...
^
)

我正在使用 PHP Yii2 和 PostgreSQL 9.4:

$sql = "SELECT * FROM my_table WHERE my_column ?& array['2', '1', '3', '4'];";

$model = TestModel::findBySql($sql)->asArray()->all();

此查询的目的是比较数据库中是否存在该值。

数据库有:

  1. ["1", "2", "3", "4"]
  2. ["1", "2", "3"]

它在 pgAdmin3 SQL 编辑器中工作。

PostgreSQL 9.41 jsonb Operators

最佳答案

在 PostgreSQL 中,?jsonb_exists() 函数的别名。 ?&jsonb_exists_all() 的别名。所以,你可以这样写你的查询:

SELECT * FROM my_table WHERE jsonb_exists_all('my_column', array['2', '1', '3', '4']);

关于php - PostgreSQL json 在 PHP Yii2 中选择查询替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29618564/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com