Skip to content

Instantly share code, notes, and snippets.

@foxweb
Created May 21, 2014 06:37
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save foxweb/a377873b493362b3c102 to your computer and use it in GitHub Desktop.
Save foxweb/a377873b493362b3c102 to your computer and use it in GitHub Desktop.
require 'mysql2'
client = Mysql2::Client.new(host: "127.0.0.1", username: "root", database: "test", encoding: "utf8")
File.open('9220.txt').each do |line|
line.chomp!
sql = "SELECT p.account, CONCAT(u.lname, ' ', u.fname, ' ', u.sname) username, u.email
FROM payments2 p JOIN users u ON userid = u.user_id
WHERE account = '#{line}'"
result = client.query(sql, symbolize_keys: true)
result.each do |row|
csv_line = "#{row[:account]};#{row[:username]};#{row[:email]}\n"
puts csv_line
end
end
@reinventer
Copy link

Так как там не требуется account, можно еще проще, одним запросом:

require 'mysql2'

client = Mysql2::Client.new(host: "www3.vedomosti.ru", username: "root", database: "db_ved_users", encoding: "utf8")

lines = File.open('9220.txt').each.map do |line|
  line.chomp!
  "'" + client.escape(line) + "'"
end

sql = "SELECT distinct CONCAT(u.lname, ' ', u.fname, ' ', u.sname) username, u.email
FROM payments2 p JOIN users u ON userid = u.user_id
WHERE account in (#{lines.join(',')})"

result = client.query(sql, symbolize_keys: true)
result.each do |row|
  csv_line = "#{row[:username]};#{row[:email]}\n"
  puts csv_line
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment