使用这样迁移的数据库列:
add_column :documents, :array_column, :string, array: true
我知道可以这样做来查询数组的任何元素:
Document.where("'foo' = ANY (array_column)")
我的问题是我是否可以专门查询数组的第二个(或任何其他单个)元素?
使用这样迁移的数据库列:
add_column :documents, :array_column, :string, array: true
我知道可以这样做来查询数组的任何元素:
Document.where("'foo' = ANY (array_column)")
我的问题是我是否可以专门查询数组的第二个(或任何其他单个)元素?
您可以使用通常的数组索引表示法,但请记住 SQL 数组是从 1 开始的,而不是从 0 开始的:
Document.where("array_column[2] = 'foo'")
精美的手册有更多关于访问数组的内容。