我在Ruby中使用MySQL2来查询数据库。什么是直接检查查询结果是否为空的方法? 代码如下:Ruby,MySQL2:检查结果是否为空
require 'mysql2'
client = Mysql2::Client.new(:host => "localhost", :username => "root")
results = client.query("SELECT * FROM users WHERE group='githubbers'")
mysql
我在Ruby中使用MySQL2来查询数据库。什么是直接检查查询结果是否为空的方法? 代码如下:Ruby,MySQL2:检查结果是否为空
require 'mysql2'
client = Mysql2::Client.new(:host => "localhost", :username => "root")
results = client.query("SELECT * FROM users WHERE group='githubbers'")
Mysql2
文档确实很差。但通过检查results
的类型,您会注意到它是一个包含3种方法的Mysql2::Result
。您感兴趣的是count
(或别名size
),它将返回结果的行数。
从这里你可以轻松地检查它是否0
:
(results.count == 0)
另外,您可以打开Mysql2::Result
类,并添加方法empty?
自己:
class Mysql2::Result
def empty?
(count == 0)
end
end
然后你可以这样做:
results.empty?
0 == results.size
将返回true
如果results
是空的。 AFAIK没有直接的方法(如Array#empty?
),但你可以猴子补丁。
Ruby肯定有'Array#empty?'。 http://www.ruby-doc.org/core-2.0/Array.html#method-i-empty-3F –
对不起,这句话有点含糊。我想说:没有与'Array#empty?'进行比较的'Mysql :: Result'方法。 :-) – nTraum
'结果有什么问题。空吗?' – mcfinnigan
你确定这个方法存在吗?我得到以下错误: '未定义的方法“空”为#
Marco
我不好,我推测结果将是一个数组。 mysql2 gem文档[here](http://rubydoc.info/gems/mysql2/0.3.13/Mysql2/Result)表明有一个'count'方法 - 你试过了吗? – mcfinnigan