我收到这样一个数组:
[1,2,3,4,5];
我需要在OR
子句中实现一个WHERE
个SELECT foo, bar FROM tbl WHERE (a.bar = 1 OR a.bar = 2 OR a.bar = 3 ... and so on)
的查询。我从我的数组中获取值。它看起来像这样:
WHERE
如何在node-mysql中创建这样的{{1}}部分?或者如何传递参数?
答案 0 :(得分:8)
我知道这已经很老了,但我已经取得了成功,至少使用这种格式的最新版本的node-mysql:
var titles = ['title 1', 'title 2'];
var sql = 'SELECT t.id ' +
' FROM topics t ' +
' WHERE t.title IN (?)';
var params = [titles];
这很好地转化为:
SELECT t.id FROM topics t WHERE t.title IN (\'title 1\', \'title 2\')
我认为更干净。
答案 1 :(得分:1)
简单的做法是使用数组的join()
var values = [1, 2, 3, 4, 5];
var query = 'SELECT foo, bar FROM tbl WHERE (a.bar = ';
query = query + values.join(' OR a.bar = ') + ')';
这将生成您正在寻找的查询