mysql
  • ruby
  • mysql2
  • 2013-07-24 112 views 3 likes 
    3

    我在Ruby中使用MySQL2來查詢數據庫。什麼是直接檢查查詢結果是否爲空的方法? 代碼如下:Ruby,MySQL2:檢查結果是否爲空

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

    '結果有什麼問題。空嗎?' – mcfinnigan

    +0

    你確定這個方法存在嗎?我得到以下錯誤: '未定義的方法「空」爲# Marco

    +1

    我不好,我推測結果將是一個數組。 mysql2 gem文檔[here](http://rubydoc.info/gems/mysql2/0.3.13/Mysql2/Result)表明有一個'count'方法 - 你試過了嗎? – mcfinnigan

    回答

    6

    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? 
    
    2
    0 == results.size 
    

    將返回true如果results是空的。 AFAIK沒有直接的方法(如Array#empty?),但你可以猴子補丁。

    +2

    Ruby肯定有'Array#empty?'。 http://www.ruby-doc.org/core-2.0/Array.html#method-i-empty-3F –

    +1

    對不起,這句話有點含糊。我想說:沒有與'Array#empty?'進行比較的'Mysql :: Result'方法。 :-) – nTraum

    相關問題