使用Rails和Postgres数组类型查询具有空数组的记录?

时间:2016-05-25 22:26:54

标签: ruby-on-rails postgresql

如何使用Postgres数组数据类型查询具有空数组的所有记录?

 create_table "users", force: :cascade do |t|
   t.string   "email", limit: 255, default: "",null: false
   t.string   "roles", default: [], array: true
 end

我想查询具有空角色数组的所有记录。

尝试User.where("roles @> ?", '{}')但是没有用(返回0条记录)。

3 个答案:

答案 0 :(得分:11)

以下是您可以使用的语法:

User.where("roles = '{}'")

答案 1 :(得分:2)

您还可以:$oldsecret

我正在使用Rails 5.2(尽管语法可能早已引入)。我意识到这是一个老问题,但是万一有人从Google搜索中找到它(像我一样)。

答案 2 :(得分:0)

试试这个:

where("roles = ?", '{null}')