mysql - 在 Google Apps 中查询 MySql 多个语句
问题描述
我正在使用 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 中失败了,我还没有找到运行多个查询的方法。甚至可能吗?谢谢!
解决方案
想出了如何通过一些试验和错误来做到这一点。您需要执行多个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)
});
就是这样!
推荐阅读
- java - 从多个网站抓取数据的最佳方法是什么?
- python - 如何根据某些条件从数据框创建过滤条件?
- amazon-web-services - AWS Storage Gateway - 串行控制台问题 - KVM Linux
- azure - Microsoft Azure 跨用户访问
- powershell - Powershell 随机变色
- html - 与图标链接::before 图标不应该有下划线 - 显示:内联块是没有选项?
- flutter - ListView 中的有状态小部件未更新
- forms - 单击时,打开表单以匹配记录
- python - Python Selenium onclick throws ElementNotInteractableException
- php - Laravel 原始变量影响临时变量