我在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