1

我正在使用 Ruby mysql 模块。

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

result = my.query("select * from foo")

result.each 做 |row| 将 row.join(',') 结束

谢谢您的帮助!

4

3 回答 3

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
于 2010-01-12T23:23:28.963 回答
0

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

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

于 2010-01-12T23:40:00.017 回答
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"]

于 2021-02-03T19:42:38.640 回答