从MySQL中获取MySQL结果列标题结果

时间:2010-01-12 22:56:05

标签: mysql ruby dbi

我正在使用Ruby mysql模块。

我想打印出查询结果并包含列名。我很难找到方法给我一些这些名字。我有如下所示的值。

  

result = my.query(“select * from foo”)

     

result.each do | row | put row.join(',')end

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)


 result.fetch_fields.each_with_index do |info, i|
       printf "--- Column %d (%s) ---\n", i, info.name
       printf "table:            %s\n", info.table
       printf "def:              %s\n", info.def
       printf "type:             %s\n", info.type
       printf "length:           %s\n", info.length
       printf "max_length:       %s\n", info.max_length
       printf "flags:            %s\n", info.flags
       printf "decimals:         %s\n", info.decimals
     end

答案 1 :(得分:0)

这可能无法直接回答您的问题,但您可能会从签出数据库抽象层中受益。 Ruby中有几个,最值得注意的是ActiveRecord。 ActiveRecord作为Ruby on Rails框架的模型部分捆绑在一起,但您可以“独立”使用它而不需要其他Rails。

使用它(或类似的东西),您将能够更快速,更准确地创建应用程序,因为它提供了与数据库通信的宝贵工具 - 您将花费大量时间自己开发的工具。如果您选择将数据库供应商从MySQL更改为其他东西(例如PostgreSQL或Oracle),您将不必重新编码。

答案 2 :(得分:0)

您正在搜索的方法是 Mysql2::Result#fields。例如:

> result = ActiveRecord::Base.connection.execute('SELECT 1 as "first_column_name", 2 as "second_column_name"')
=> #<Mysql2::Result:0x0000559c8b9d8370...
> result.fields
=> ["first_column_name", "second_column_name"]