是否可以创建查询以在 javascript 中的一个查询中执行多个查询?

Posted

技术标签:

【中文标题】是否可以创建查询以在 javascript 中的一个查询中执行多个查询?【英文标题】:Is it possible to create query to execute multiple queries in one query in javascript? 【发布时间】:2018-09-28 15:24:19 【问题描述】:

我想以字符串的形式发送多个查询。 我通过javascript将结果作为对象返回。 但是,由于查询之间的“,”,它有一个错误。 我无法删除查询之间的“,”。

    "INSERT INTO  membership ( userId,roleId,groupId )
    VALUES (5,1,5),
    INSERT INTO  membership ( userId,roleId,groupId )
    VALUES (5,1,4),
    INSERT INTO  membership ( userId,roleId,groupId )
    VALUES (5,1,5)"

是否可以在一个查询中执行多个查询?

这是我返回的字符串的 javascript 代码。

var objArray = [];
for (var i =0; i< obj.length ;i++) 
objArray.push( " INSERT INTO membership(id,userId,roleId,groupId) VALUES (" 
obj[i].id + "," +  obj[i].userId  + "," + obj[i].role + "," + obj[i].group + 
")");
  
 return objArray.toString();

提前致谢。

【问题讨论】:

它们会是插入查询吗? 是的,我想插入多行 【参考方案1】:

使用; 代替,。示例QUERY1;QUERY2;QUERY3

【讨论】:

来自变量的查询。我正在努力删除,【参考方案2】:

进行多重插入查询

var beforeQuery = 'INSERT INTO membership(id,userId,roleId,groupId) VALUES ';
var qvalues = [];
for (var i=0; i<obj.length; i++) 
   qvalues.push('(' + obj[i].id + ',' + 
   obj[i].userId  + ',' + 
   obj[i].role + ',' + 
   obj[i].group + ')');
 

var query = beforeQuery + qvalues.join(",");
// result would be something like:
// INSERT INTO membership(id,userId,roleId,groupId) VALUES (1,2,3,4),(3,5,3,6),(2,5,19,2);

// execute query here with query variable, all rows will be inserted with a single query

【讨论】:

如果你想组合不同类型的查询,你应该创建一个过程:dev.mysql.com/doc/refman/8.0/en/create-procedure.html它会一次执行所有的查询,你甚至可以做回滚 感谢您的回答。抱歉,我没有提到查询的验证。整个查询需要这样的语句:IF ( NOT EXISTS (SELECT * FROM members where mid = 1111))

以上是关于是否可以创建查询以在 javascript 中的一个查询中执行多个查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Javascript 中创建查询参数?

对于表中的行,将行保存在临时表中以在 plpgsql 的选择查询中使用其数据

创建查询以在对象数组中查找对象[重复]

创建查询以在对象数组中查找对象[重复]

序列化对象以在 JavaScript/jQuery 中查询字符串 [重复]

Javascript 是不是可以复制 DOM 中的元素? [复制]