【问题标题】:MySql multiple statements in query in Google Apps在 Google Apps 中查询 MySql 多个语句
【发布时间】: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 表格中编写查询(我们广泛使用它)。

标签: mysql google-apps-script jdbc


【解决方案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)
});

就是这样!

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2018-06-19
    • 2021-06-10
    • 1970-01-01
    • 2020-02-13
    相关资源
    最近更新 更多