【问题标题】:POSTGRES check if a provided value is present in the column of type arrayPOSTGRES 检查提供的值是否存在于数组类型的列中
【发布时间】:2019-10-25 07:25:24
【问题描述】:

我正在尝试检查列中是否存在数组(列名文本[])类型的值。 作为服务器,我正在使用 hapi 并尝试通过查询从 hapi 中检查相同的内容。

我写的查询是(查询不工作):

where: { column_name: { $in: { provided_value} }}

该列包含以下值:

{1234, 3456}

值是文本类型。

谁能帮我找出问题。

提前致谢。

【问题讨论】:

  • 数组还是 json ?你的确切问题是什么?
  • where provided_value = any(array_column)
  • @BarbarosÖzhan 列类型是数组。值在数据库表中以 {1234, 2345} 格式显示
  • @a_horse_with_no_name 感谢您的回答。我有一段时间试过了,它可以工作。唯一的事情是我想将它用作续集查询。你能不能给我同样的。我一直在努力,但无法做到。

标签: postgresql hapi


【解决方案1】:

Sequelize 不支持 ANY 的这种用法,他们似乎只支持像 IN 这样的用法。 相反,您应该尝试包含运算符 (@>):

import {Op} from "sequelize";

MyModel.findAll({
  where: {
    column_name: {
      [Op.contains]: [provided_value]
    }
  }
});

这会产生类似的东西

SELECT * FROM "MyModel" WHERE column_name @> '{"provided_value"}';

【讨论】:

    猜你喜欢
    • 2021-11-04
    • 2012-06-29
    • 2021-09-22
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    相关资源
    最近更新 更多