使用Mysqljs \ mysql执行'where in'语句
问题描述:
我在Node应用程序中使用mysqljs\mysql,我遇到了一些使用'in'子句执行语句的问题。使用Mysqljs mysql执行'where in'语句
在paramater逸出,文档指出:
阵列都变成列表中,例如[ '一', 'B']变成 'A', 'B'
但是当我尝试这样的事:
var sql = "SELECT * FROM table WHERE name IN (?)";
var params = ['a', 'b', 'c'];
console.log(mysql.format(sql, params));
我只得到包含查询该阵列的第一个值:
"SELECT * FROM table WHERE name IN ('a')"
答
如果没有其他的工作,你也可以尝试在编写语句时单独写出列表项(这应该是自动的)。因此,准备好的语句如下所示:
"SELECT * FROM table WHERE name IN (?, ?, ?)"
如果文档不正确(从未使用过),另一种方法是加入数组'params.join(',')'。但是这应该只在mysqljs不可能的情况下才能完成 – AxelH