2016-08-12 83 views
1

嘿,我是一個絕對的ruby noob,希望你能幫助我。 我想做很多不同的部門(部門A,B,C ....)的SQL查詢遍歷數組並在ruby中使用變量

我想保存部門數組,並遍歷它,使用循環等。

這是我的舊代碼:

#!/usr/bin/ruby 
require 'mysql2' 
##Connect to my Database 
db = Mysql2::Client.new(:host => "localhost", :username => "MyUserName", :password => "MyPassword", :port => 3306, :database => "MyTest-Database") 

#Mysql querys 
sql_A= "SELECT RMKPI FROM `Table1` WHERE `Department` = 'A' " 
sql_B= "SELECT RMKPI FROM `Table1` WHERE `Department` = 'B' " 

#Execute the querys 
results_PO = db.query(sql_A) 
results_DevMuM = db.query(sql_A) 

這是我的僞代碼:

Array1[A,B,...] 
loop 
    sql_Array1[x]="SELECT ...WHERE `Department`= Array1[x]" 
    Array1[x+1] 

我怎樣才能做到這一點? 非常感謝

+0

如果你發現答案有幫助,你應該考慮選擇它。 –

回答

2
DEPARTMENTS = %w|A B C| 
results = DEPARTMENTS.map do |department| 
    query = "SELECT RMKPI FROM `Table1` WHERE `Department` = '#{department}'" 
    [department, db.query(query)] 
end.to_h 

現在你有{ departments ⇒ results }的哈希值。要訪問結果對於一個給定部門,使用:

results['A'] 

旁註:我建議你到谷歌ActiveRecord或任何其他ROM來簡化和更安全與數據庫查詢工作。

+0

好的非常感謝 – Gutiu