Ruby 的 SQLite3,无法搜索结果数组(遍历数组,就好像它是一个巨大的元素一样)
SQLite3 with Ruby, Cannot Search Resulting Array (iterates over array as if it were one giant element)
一段时间以来我一直在努力寻找答案,我不确定我是否问错了问题,但到目前为止我一直没有找到答案。
我有一个通过查询 SQLite table 生成的数组。我还有一个从 csv 文件生成的时间数组。我正在尝试提取时间 [0](一个 ID 号)并检查它是否存在于 SQL table
的数组中
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 在数组中只出现一次或两次,但是当我 运行 这段代码时,它似乎为每个元素打印 "Match found" (比如 5,000 次它说 "Match found" ).我觉得从 SQLite 生成的数组有问题,但我一辈子都弄不明白。
有什么想法吗?谢谢。
在这里:
db.execute ("SELECT t FROM ts") do |row|
您的 row
是一个数组,其唯一元素是您要查找的 t
。这意味着您最终得到的是 array
中的数组数组而不是数字数组,当然您的 array.include? time[0]
检查失败,因为 array
仅包含其他数组。
你可能想说:
array << row[0]
收集 array
中的 t
个值。
一段时间以来我一直在努力寻找答案,我不确定我是否问错了问题,但到目前为止我一直没有找到答案。
我有一个通过查询 SQLite table 生成的数组。我还有一个从 csv 文件生成的时间数组。我正在尝试提取时间 [0](一个 ID 号)并检查它是否存在于 SQL table
的数组中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 在数组中只出现一次或两次,但是当我 运行 这段代码时,它似乎为每个元素打印 "Match found" (比如 5,000 次它说 "Match found" ).我觉得从 SQLite 生成的数组有问题,但我一辈子都弄不明白。
有什么想法吗?谢谢。
在这里:
db.execute ("SELECT t FROM ts") do |row|
您的 row
是一个数组,其唯一元素是您要查找的 t
。这意味着您最终得到的是 array
中的数组数组而不是数字数组,当然您的 array.include? time[0]
检查失败,因为 array
仅包含其他数组。
你可能想说:
array << row[0]
收集 array
中的 t
个值。