如何在IRB的Mysql2 Gem中通过一个调用运行多个sql查询?
我正在玩mysql2(和mysql5)gem以及结果和可枚举结果 我可以运行以下查询:如何在IRB的Mysql2 Gem中通过一个调用运行多个sql查询?,mysql,ruby,mysql2,Mysql,Ruby,Mysql2,我正在玩mysql2(和mysql5)gem以及结果和可枚举结果 我可以运行以下查询: results = client.query("select now()") results = client.query("select version()") 我还可以运行查询,例如 results = client.query("select now()") results = client.query("select version()") 但我想做的是把它提高一个档次。在现实生活中,我假设人
results = client.query("select now()")
results = client.query("select version()")
我还可以运行查询,例如
results = client.query("select now()")
results = client.query("select version()")
但我想做的是把它提高一个档次。在现实生活中,我假设人们运行多个查询。那么,我如何确保我可以在一次拍摄中获得版本和时间呢
--
我尝试过但不起作用的东西:
results = client.query("select version(); select now()")
我得到的错误是:
Mysql2::Error: You have an error in your SQL Syntax; check the manual that corresponds to your Mysql Version for the right syntax to use near 'select now()' at line1
现在我知道我可以在Mysql控制台中运行以下查询并返回结果,我将如何在Mysql2 Gem中执行相同的操作:
select version();select now()
我将如何在一个命令行中使用mysql2gem(或者我需要两个命令行)执行相同的操作。我这样问是因为在现实生活中,人们通常会运行多个查询,以获得他们想要的结果。我通过在连接MySQL之前添加此默认查询选项来解决此问题:
Mysql2::Client.default_query_options[:connect_flags]|=Mysql2::Client::MULTI_语句
SELECT VERSION(), NOW();
如果需要将它们合并到一个结果中,则以下操作将起作用:
SELECT CONCAT(VERSION(), NOW());
我想出来了。这类似于Mysql控制台。您只执行一条select语句,而不是results=client.query(“现在选择(),选择版本()”)。所以要让它工作,它必须是results=client.query(“select version(),now()”),这让我省去了很多小时的麻烦!我不断地将SQL复制到客户端,它运行得非常完美!工作100%