Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在IRB的Mysql2 Gem中通过一个调用运行多个sql查询?_Mysql_Ruby_Mysql2 - Fatal编程技术网

如何在IRB的Mysql2 Gem中通过一个调用运行多个sql查询?

如何在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()") 但我想做的是把它提高一个档次。在现实生活中,我假设人

我正在玩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 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%