mysql - 如何在 Ruby 中获取哈希数组的结果(mysql2 gem)

标签 mysql ruby mysql2

我正在使用在这里找到的 Ruby 的 mysql2 gem: https://github.com/brianmario/mysql2

我有以下代码:

client = Mysql2::Client.new(
  :host => dbhost, 
  :port => dbport, :database => dbname,
  :username => dbuser, 
  :password => dbpass)
sql = "SELECT column1, column2, column3 FROM table WHERE id=#{id}"
res = client.query(sql, :as => :array)
p res # prints #<Mysql2::Result:0x007fa8e514b7d0>

上面的.query 调用是否有可能返回散列数组,res 数组中的每个散列都采用column => value< 格式。我可以手动执行此操作,但从文档中给我留下的印象是,我可以将结果以上述格式直接加载到内存中。我需要这个,因为之后我无论如何都必须在 json 中对结果进行编码,所以我逐行获取行没有任何优势。而且数据量总是很小。

最佳答案

改变

res = client.query(sql, :as => :array)

到:

res = client.query(sql, :as => :hash)

正如@Tadman 所说,:as => :hash 是默认值,所以实际上您不必指定任何内容。

关于mysql - 如何在 Ruby 中获取哈希数组的结果(mysql2 gem),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13013899/

相关文章:

ruby-on-rails - 使用 rails 执行大型脚本

ruby - QT Ruby 绑定(bind)信号槽与哈希参数

ruby-on-rails - 无法在 Windows Server 2003 上使用 mysql2 运行 Rails 服务器

mysql - Node mysql2无法访问更新结果

ruby-on-rails - 删除记录时的 SystemStackError(堆栈级别太深)

mysql - 将 Scala 和 Play-Slick 连接到 AWS MySQL

PHPExcel 将 XLS 转换为具有特殊字符的 CSV

MySQL 5.1 和内存分页缓慢。有图

mysql - rake 数据库 :create error with mysql2 gem (Couldn't create database for {"adapter"= >"mysql2")

mysql - 在状态中存储大量数据?