Ruby,MySQL2:检查结果是否为空
我正在Ruby中使用MySQL2查询数据库。检查查询结果是否为空的直接方法是什么? 代码如下所示:Ruby,MySQL2:检查结果是否为空,mysql,ruby,mysql2,Mysql,Ruby,Mysql2,我正在Ruby中使用MySQL2查询数据库。检查查询结果是否为空的直接方法是什么? 代码如下所示: require 'mysql2' client = Mysql2::Client.new(:host => "localhost", :username => "root") results = client.query("SELECT * FROM users WHERE group='githubbers'") 如果results为空,则返回true。虽然没有直接的方法(比如Ar
require 'mysql2'
client = Mysql2::Client.new(:host => "localhost", :username => "root")
results = client.query("SELECT * FROM users WHERE group='githubbers'")
如果
results
为空,则返回true
。虽然没有直接的方法(比如Array#empty?
),但是你可以用猴子修补它。Mysql2文档确实很差。但是通过检查results
的类型,您会注意到它是一个包含3个方法的类型。您感兴趣的是count
(或别名size
),它将返回结果的行数
从这里,您可以轻松检查它是否为0
:
(results.count == 0)
或者,您可以打开Mysql2::Result
类并添加方法empty?
您自己:
class Mysql2::Result
def empty?
(count == 0)
end
end
然后你可以做:
results.empty?
results.empty有什么问题?
您确定该方法存在吗?我得到以下错误:未定义的方法“empty”对于#我的坏,我假设结果将是一个数组。mysql2 gem文档表明有一种count
方法-您尝试过吗?非常感谢:count
有效!Ruby肯定有数组#空?
。对不起,这个句子有点模棱两可。我想说的是:Mysql::Result
没有比Array#empty?
:-)更好的方法
results.empty?