【发布时间】:2018-11-18 01:56:42
【问题描述】:
我在 postgres 中有一个数组列,我想查找该列为 nil 或 [] 的所有记录。我可以搜索一个或另一个很好,但尝试都失败了。
这就是我的尝试
Model.where(column: [nil, []])
但我得到了错误
ActiveRecord::StatementInvalid (PG::InvalidTextRepresentation: ERROR: malformed array literal: "{NULL,{}}")
DETAIL: Unexpected "{" character.
【问题讨论】:
-
您使用的是哪个版本的 Rails?
-
postgres 中的空数组列用
'{}'选择。也就是说:Model.where(column: [nil, "'{}'"]). -
@mudasobwa 我认为这不会有帮助,这只会导致
{NULL, '{}'}出现不同的问题,不是吗? -
@muistooshort 啊,确实;我评论的要点是关于如何在 postgres 中选择空数组的提示;我从不相信 AR 可以构建查询,因为在复杂查询中出现了太多的魔法和意外失败。
标签: ruby-on-rails ruby postgresql activerecord ruby-on-rails-5