2016-08-12 6 views
1

안녕하세요, 저는 루비 룻의 절대 루비입니다. 도와 주실 수 있기를 바랍니다. 다른 부서 (부서 A, B, C ....)가 많은 SQL-querys를 수행하려고합니다.배열을 반복하고 루비에서 변수를 사용하십시오.

부서를 배열에 저장하고 루프를 반복하고 싶습니다.

이 내 예전의 코드입니다 :

#!/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을 위해 Google에 제안했다.

+0

괜찮습니다. – Gutiu

관련 문제