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

Joh*_*ohn 3 ruby mysql mysql2

我正在玩mysql2(和mysql 5)gem以及结果和Enumerable结果.

我可以运行诸如的查询

results = client.query("select now()")
Run Code Online (Sandbox Code Playgroud)

我也可以运行诸如此类的查询

results = client.query("select version()")
Run Code Online (Sandbox Code Playgroud)

但我想要做的就是把它提升一个档次.在现实生活中,我假设人们运行多个查询.那么我怎样才能确保我能一次性获得版本和时间.

-

我尝试过的东西不起作用:

results = client.query("select version(); select now()")
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

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
Run Code Online (Sandbox Code Playgroud)

现在我明白我可以在Mysql Console中运行以下查询并获得结果,我将如何在Mysql2 Gem中做同样的事情:

select version();select now()
Run Code Online (Sandbox Code Playgroud)

我如何在一个命令行中使用Mysql2 gem(或者我需要两个).我问,因为在现实生活中,人们通常会运行多个查询,以便按照他们想要的方式获得结果.

小智 8

我在连接MySQL之前添加了这个默认查询选项解决了这个问题:

Mysql2::Client.default_query_options[:connect_flags] |= Mysql2::Client::MULTI_STATEMENTS