简体   繁体   中英

Ruby, MySQL2: check if the result is empty

I am using MySQL2 in Ruby to query a database. What is a direct way to check whether the result of a query is empty? The code looks like:

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

The Mysql2 documentation is indeed very poor. But by inspecting the type of results you will notice that it is a Mysql2::Result which contains 3 methods. The one that you are interested in is count (or alias size ) which will return the number of rows of the result.

From here you can easily check if it is 0 :

(results.count == 0)

Alternatively you could open the Mysql2::Result class and add the method empty? yourself:

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

And then you can just do:

results.empty?
0 == results.size

will return true if results is empty. AFAIK there is no direct method (such as Array#empty? ) , but you could monkey patch it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM