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 个值。