mysql2中IN(?)传参,executequery第二个参数传参,where in()多个参数不固定怎么传参
warning:
这篇文章距离上次修改已过433天,其中的内容可能已经有所变动。
在使用mysql2库时,如果你想要使用IN查询并且需要传递多个参数,你可以使用executeQuery方法,并且在SQL语句中使用?作为占位符。你需要确保传递给executeQuery的第二个参数是一个数组,其中包含了所有你想要在IN子句中使用的值。
以下是一个示例代码,演示如何使用IN子句和executeQuery方法传递多个参数:
const mysql = require('mysql2/promise');
async function queryWithInClause(connection, values) {
const sql = 'SELECT * FROM your_table WHERE your_column IN (?)';
const result = await connection.executeQuery(sql, [values]); // 注意这里[values]将值作为数组传递
return result[0];
}
(async () => {
const connection = await mysql.createConnection({
host: 'localhost',
user: 'your_user',
database: 'your_database'
});
try {
const valuesToFind = [1, 2, 3, 4]; // 这是你要查询的值的数组
const result = await queryWithInClause(connection, valuesToFind);
console.log(result);
} finally {
connection.end();
}
})();在这个例子中,queryWithInClause函数接受一个数据库连接和一个数组valuesToFind。这个数组中的每个元素都会被IN子句使用。注意在调用executeQuery时,我们将valuesToFind作为一个数组传递,并且在SQL语句中IN子句的占位符是一个问号(?)。这样,mysql2会为你处理参数的转换和安全性问题。
评论已关闭