如何将DB.fetch的哈希输出与输入数组进行比较?
e.g。如果在来自DB.fetch的散列输出的数据集上,则
dataset.each{|r| p r.values}
为每一行输出数组,但是如果我想存储这些数组并比较这些数组并且还在{}
范围之外运行现有数组的计算呢?
答案 0 :(得分:0)
你的dataset.each{|r| p r.values}
返回的不是数组,它会打印出来。
要获取包含数组的数组,您可以使用:
DB[:yourtab].all.map{|v|v.values}
更完整的例子:
require 'sequel'
DB = Sequel.sqlite
DB.create_table(:tab1){
primary_key :id
field :a, :type => :nvarchar, :size => 10
field :b, :type => :nvarchar, :size => 10
}
DB[:tab1].insert(:a => 'a1', :b => 'b1')
DB[:tab1].insert(:a => 'a2', :b => 'b2')
DB[:tab1].insert(:a => 'a3', :b => 'b3')
result = DB[:tab1].all.map{|v|v.values}
p result
结果是:
[[1, "a1", "b1"], [2, "a2", "b2"], [3, "a3", "b3"]]