首页 > 解决方案 > 用于更新 postgresql 数据库的 Knex 查询,其中数组类型列包含特定值

问题描述

我有一个包含数组类型列的数据库,我想更新数组类型列包含字符串的行。所以给定字符串:'my_string' 我想在数组列中搜索'my_string'。以下适用于直接的 postgresql:

update table_name 
set column_name = value
where 'some_string' = any (array_type_column)

但是,当使用原始查询构建器时,Knex 会抛出一个错误,即列“some_string”不存在。

标签: javascriptarrayspostgresqlknex.js

解决方案


这里:

knex('table_name')
  .update('column_name', value)
  .whereRaw('? = any (??)', ['some_string', 'array_type_column'])

可运行示例https://runkit.com/embed/qh7okvfgfwaf


推荐阅读