Итерация по массиву и использование переменных в ruby
Эй, я абсолютный рубиновый нуб и надеюсь, что вы мне поможете. Я хочу сделать много SQL-запросов с различными отделами (отдел A,B, C....)
Я хочу сохранить отделы в массиве и перебрать его, использовать циклы и так далее.
Это мой старый код:
#!/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]
Как я могу это сделать? большое спасибо
1 ответ
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']
Sidenote: Я бы предложил вам зайти в ActiveRecord
или любое другое ПЗУ для упрощения и повышения безопасности работы с запросами к базе данных.