2012-01-31 86 views
0

我有一個數組和一個SQL select語句,輸出一個非常類似於數組的列表。我想比較SQL語句和數組的結果並計算相似度。我已經這樣做了:交集SQL主動記錄

array = [H1, H3, H4, H6, H9] 
sql_statement = S.connection.select_rows("select name from bla") # should get H1,H4,H10 

i = 0 
sql_statement.each do |sql| 
if (sql & array) 
i += 1 
end 

我想答案是2,因爲H1和H4匹配。

任何幫助?

感謝

回答

0

,如果你想使用直接SQL的一個可能的解決方案:

YourModel.count_by_sql(["SELECT count(*) FROM your_table_name WHERE your_column IN (?)", your_array]) 
0

你可以得到兩個數組的這樣的交集:

>> x = [ 1, 2, 3, 4 ] 
>> y = [ 3, 4, 5, 6 ] 
>> x & y 
=> [ 3, 4 ] 
>> (x & y).size 
=> 2