在 Google Apps 中查询 MySql 多个语句
Posted
技术标签:
【中文标题】在 Google Apps 中查询 MySql 多个语句【英文标题】:MySql multiple statements in query in Google Apps 【发布时间】:2021-01-02 22:17:51 【问题描述】:我正在使用 Google Apps 脚本连接到我的 mysql 数据库并运行查询。我正在使用“标准”var conn = Jdbc.getCloudSqlConnection (dbUrl, user, userPwd)
和 stmt.executeQuery(QUERY)
。这一切都很好。我现在需要运行多个查询,例如SET @DateFrom='2020-12-01'; SET @DateTo='2020-12-31'; SELECT * FROM database WHERE MyDate BETWEEN @DateFrom AND @DatoTo
。但这在 GAS 中失败了,我还没有找到运行多个查询的方法。甚至可能吗?谢谢!
【问题讨论】:
您可以在 MySQL 服务器上使用一系列多条语句创建一个存储过程,然后使用 Google Apps 脚本中的 CALL 语句调用该存储过程。 感谢@TheAddonDepot,但我真的希望能够在 Google 表格中编写查询(我们广泛使用它)。 【参考方案1】:通过一些试验和错误想出如何做到这一点。
您需要执行多个stmt.executeQuery(QUERY)
- 每个查询一个(显然)。
我首先创建了一个函数来清理字符串并将其拆分为一个数组:
function oTrimAndSplit(inputString, delimiter)
var trimmed = inputString.trim();
var length = trimmed.length;
if (trimmed.slice(-1) == ";") trimmed = trimmed.slice(0, -1);
var arr = trimmed.split(delimiter);
return arr;
然后把它包起来:
var conn = Jdbc.getCloudSqlConnection (dbUrl, user, userPwd);
var queries = oTrimAndSplit(QUERY, ';');
queries.forEach(function(queriesElement)
stmt.executeQuery(queriesElement)
);
就是这样!
【讨论】:
以上是关于在 Google Apps 中查询 MySql 多个语句的主要内容,如果未能解决你的问题,请参考以下文章
Google Apps 脚本 setTimestamp 到 mysql 数据库
在 Google Apps 脚本中使用 CloudKit Web 服务 API 查询 CloudKit 公共数据库时的 AUTHENTICATION_FAILED