javascript - 如何将数组的值附加到 Javascript 中的 SQL 语句

标签 javascript sql arrays

let todo = [1, 2, 3, 4, 5, 6, 7, 8];

var stmt = "SELECT * FROM MY_USERS WHERE USER_ID = ?";

connection.query(stmt, todo, function(err, row) {
});

connection.release();

我想SELECT * FROM MY_USERS WHEREUSER_ID 可以是数组 [1, 2, 3, 4, 5, 6, 7, 8] 中的任何值/强>。

有没有一种方法可以在不遍历数组、构建新的字符串段并将其连接到最终查询语句的情况下执行此操作?

提前谢谢大家。

编辑

我无法提前知道数组元素的确切数量,所以 SELECT * FROM MY_USERS WHERE USER_ID IN (?, ?, ?, ?, ?, ? ,? ,?) 不行。

最佳答案

SELECT * FROM MY_USERS WHERE USER_ID IN (?, ?, ?, ?, ?, ? ,? ,?)

只需确保 ? 的数量与 in 参数数组中的元素数量相匹配

然后最后,使用 todo.length 做类似的事情:

let todo = [1, 2, 3, 4, 5, 6, 7, 8];

var stmt = "SELECT * FROM MY_USERS WHERE USER_ID IN (";

for (let i = 0; i < todo.length; i++) {
  if (i === 0) {
    stmt += "?";
  } else {
    stmt += ", ?";
  }
}

stmt += ")";

connection.query(stmt, todo, function(err, row) {});

connection.release();

关于javascript - 如何将数组的值附加到 Javascript 中的 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56454013/

相关文章:

sql - 定义最佳 varchar 长度

javascript - 复杂场景下如何过滤重复行

java - 解决 'possible loss of precision'编译错误后的ArrayIndexOutOfBounds

c++ - 从函数交换并返回 Char 数组

javascript - 在 WordPress 帖子中为所有图像设置样式

javascript - Phonegap - 页面显示但不加载 javascript

javascript - Bootstrap 轮播在点击时向上移动

javascript - 未捕获的语法错误 : Unexpected token ( error

使用 NOT EXISTS 的 SQL

sql - 查找所有共同作者 - 多对多映射表的分面/分组