Mysql结果2d数组到1d Ruby on Rails

wdh*_*ard 0 ruby arrays ruby-on-rails multidimensional-array

我有一个返回2d数组的查询,但希望它返回1d数组结果.鉴于:

sql = "SELECT `id` FROM things WHERE other_id = 8"
ids = ActiveRecord::Base.connection.execute(sql).to_a

ids 等于

[[1],[2],[3],[4],[5],[9]....]

我正在使用map创建一个新数组,但它超过5000条记录非常慢.获取以下格式的最快方法是什么:

[1,2,3,4,5,9...]

Aru*_*hit 5

你可以这样做

sql = "SELECT `id` FROM things WHERE other_id = 8"
ids = ActiveRecord::Base.connection.execute(sql).to_a.flatten
Run Code Online (Sandbox Code Playgroud)

更多Rails方式是使用#pluck如下: -

Thing.where(other_id: 8).pluck(:id)
Run Code Online (Sandbox Code Playgroud)

  • 是的,"采摘"是去这里的方式. (3认同)