刚才为了不用迭代取出ruby查询结果集内的数据翻了好长时间文档。
最后终于在这个地址:http://www.tmtm.org/en/mysql/ruby/README_ja.html找到了答案。
但是是日语的,幸好本人有一定的日语基础。英文版的文档实在不敢恭维,写的太差了。
可能是因为日本人写的原因吧,所以英文写的很不详细 :wink: 等有时间了,我就把这份文档翻译过来。
查询其实是这样的
因为只是查询一表的记录条数,所以 非常之不情愿去为了一条记录的一个字段去写个迭代。
所以去google查了一下找到了上面的地址。
如果查询的结果是个记录集合我想大家很容易去解析,用each do或者each_hash很轻松就可以解决了。
其实,取出单个字段的方法和迭代也非常的类似,就是要用到Mysql::Result class的一些不常用的方法。
具体的写法如下:
解释一下,第一种方法是将当前行(因为只有一行,所以就是第一行),以数组的型式返回,再取第0列的值,就得到想要的东西了。
第二种方法是将当前行以哈希表(字段名称-值)的型式返回,在以字段名为key取出想要的之就可以了。这里字段的名称是“zongshu”。
其实,做完回头想一想这两种方法和上面两种迭代方式是非常相似的,只是少了循环而已。
最后终于在这个地址:http://www.tmtm.org/en/mysql/ruby/README_ja.html找到了答案。
但是是日语的,幸好本人有一定的日语基础。英文版的文档实在不敢恭维,写的太差了。
可能是因为日本人写的原因吧,所以英文写的很不详细 :wink: 等有时间了,我就把这份文档翻译过来。
查询其实是这样的
count = dbh.query("SELECT COUNT(*) AS zongshu FROM diginfo")
因为只是查询一表的记录条数,所以 非常之不情愿去为了一条记录的一个字段去写个迭代。
所以去google查了一下找到了上面的地址。
如果查询的结果是个记录集合我想大家很容易去解析,用each do或者each_hash很轻松就可以解决了。
其实,取出单个字段的方法和迭代也非常的类似,就是要用到Mysql::Result class的一些不常用的方法。
具体的写法如下:
count.fetch_row()[0].to_s()
count.fetch_hash()["zongshu"].to_s()
解释一下,第一种方法是将当前行(因为只有一行,所以就是第一行),以数组的型式返回,再取第0列的值,就得到想要的东西了。
第二种方法是将当前行以哈希表(字段名称-值)的型式返回,在以字段名为key取出想要的之就可以了。这里字段的名称是“zongshu”。
其实,做完回头想一想这两种方法和上面两种迭代方式是非常相似的,只是少了循环而已。