2

私はそのような配列を受け取ります:

[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)

WHEREnode-mysql でそのような部分を作成するにはどうすればよいですか? または、パラメータを渡す方法は?

4

2 に答える 2

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\')

もっときれいだと思います。

于 2014-02-28T21:09:42.173 に答える
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 = ') + ')';

それはあなたが探しているクエリを生成します

于 2013-09-17T03:10:40.457 に答える