我收到这样一个数组:
[1,2,3,4,5];
我需要实现一个有很多OR
s inWHERE
子句的查询。我从我的数组中获取值。它看起来像这样:
SELECT foo, bar FROM tbl WHERE (a.bar = 1 OR a.bar = 2 OR a.bar = 3 ... and so on)
如何WHERE
在 node-mysql 中创建这样的部分?或者如何传递参数?
我收到这样一个数组:
[1,2,3,4,5];
我需要实现一个有很多OR
s inWHERE
子句的查询。我从我的数组中获取值。它看起来像这样:
SELECT foo, bar FROM tbl WHERE (a.bar = 1 OR a.bar = 2 OR a.bar = 3 ... and so on)
如何WHERE
在 node-mysql 中创建这样的部分?或者如何传递参数?
我知道这已经相当老了,但我已经取得了成功,至少最近版本的 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\')
干净多了,我想。
简单的事情就是使用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 = ') + ')';
这将生成您正在寻找的查询