2012-01-31 83 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