3

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

我可以运行查询,例如

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 Console 中运行以下查询并返回结果,我将如何在 Mysql2 Gem 中做同样的事情:

select version();select now()

我将如何在一个命令行中对 Mysql2 gem 做同样的事情(或者我需要两个)。我问是因为在现实生活中,人们通常会运行多个查询以按照他们想要的方式获得结果。

4

2 回答 2

8

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

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

于 2011-04-14T17:09:29.117 回答
1

您可以使用 a 一次选择多个事物,如下所示:

SELECT VERSION(), NOW();

如果您需要它们成为一个结果,那么以下将起作用:

SELECT CONCAT(VERSION(), NOW());
于 2011-05-18T13:32:20.833 回答