【问题标题】:Ruby, MySQL2: check if the result is emptyRuby,MySQL2:检查结果是否为空
【发布时间】:2013-07-24 00:14:26
【问题描述】:

我在 Ruby 中使用 MySQL2 来查询数据库。检查查询结果是否为空的直接方法是什么? 代码如下:

require 'mysql2'
client = Mysql2::Client.new(:host => "localhost", :username => "root")
results = client.query("SELECT * FROM users WHERE group='githubbers'")

【问题讨论】:

  • results.empty? 有什么问题
  • 您确定该方法存在吗?我收到以下错误:undefined method "empty" for #<Mysql2::Result:0x9a2afcc
  • 我的错,我认为结果将是一个数组。 mysql2 gem 文档here 表示有一个count 方法 - 你试过这个吗?
  • 非常感谢:count 工作!

标签: mysql ruby mysql2


【解决方案1】:
0 == results.size

如果results 为空,将返回true。 AFAIK 没有直接的方法(例如Array#empty?),但您可以对其进行修补。

【讨论】:

【解决方案2】:

Mysql2 的文档确实很差。但是通过检查results 的类型,您会注意到它是一个Mysql2::Result,其中包含3 个方法。您感兴趣的是count(或别名size),它将返回结果的行数。

从这里你可以很容易地检查它是否是0

(results.count == 0)

或者,您可以打开 Mysql2::Result 类并自己添加方法 empty?

class Mysql2::Result
    def empty?
        (count == 0)
    end
end

然后你可以这样做:

results.empty?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-09
    • 2014-04-13
    • 2018-12-13
    • 2021-04-28
    • 2014-02-11
    • 1970-01-01
    相关资源
    最近更新 更多