我现在一直试图找到一个答案,我不确定我是否提出了错误的问题,但到目前为止我还没有运气。
我有一个通过查询SQLite表生成的数组。我也有一个从csv文件生成的数组。我试图拉出时间[0](一个id号)并检查它是否存在于SQL表的数组中
array = []
SQLite3::Database.new("t.db") do |db|
db.execute ("SELECT t FROM ts") do |row|
array << row
end
end
times = CSV.read('times1.csv')
times.each do |time|
#puts "This is the trip id: #{time[0]}"
if array.include? time[0]
puts time[0]
end
end
当我这样做时,我没有得到任何结果。我知道应该有一些比赛。当我尝试迭代数组时:
array.each do |row|
if row = 2345
puts "Match found"
end
end
这是一个让我很难过的奇怪部分。我知道2345只在数组中出现一次或两次,但是当我运行此代码时,似乎它为每个元素打印出“匹配找到”(比如找到“匹配找到”的5000次)。我觉得从SQLite生成的数组有问题,但我不能为我的生活搞清楚。
有什么想法吗?谢谢。
答案 0 :(得分:0)
在这里:
db.execute ("SELECT t FROM ts") do |row|
您的row
是一个数组,其唯一元素是您之后的t
。这意味着您最终会在array
中使用数组而不是数组,当然array.include? time[0]
检查失败,因为array
只包含其他数组。
你可能想说:
array << row[0]
收集t
中的array
值。