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 WHERE
USER_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/