PHP Yii2中的PostgreSQL json选择查询替换

奥马尔·马萨德(Omar Massad)

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运算符

阿扎玛特

在PostgreSQL中,?jsonb_exists()函数的别名?&是的别名jsonb_exists_all()因此,您可以这样编写查询:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章