在我的node.js模块中,我在数组中有一些数据需要构建一个查询:
var valueClause = "(fieldA = '" + data.fieldA + "' AND fieldB = '";
var whereClause = ' WHERE ';
var hasAdded = false;
data.accounts.forEach(function (account) {
whereClause += valueClause + account.fieldB + "') OR ";
hasAdded = true;
})
if (hasAdded) {
// remove OR
whereClause = whereClause.substring(0, whereClause.length - 3);
// use the whereClause in the query
...
}
在上述代码的最后,如果我有2个帐户,我有whereClause:
&#39; WHERE(fieldA =&#39; abcde&#39; AND fieldB =&#39; 0003&#39;)或(fieldA =&#39; abcde&#39; AND fieldB =&#39; 0002&#39;)或< / p>
我总是要删除最后一个&#39; OR&#39;位。
有没有更明智的方法来构建上述内容?
答案 0 :(得分:2)
由于fieldA的值似乎已在循环中修复,因此您可以编写此查询
ip.getId()
由于您没有准备好的SQL语句,您可以直接使用数组,您必须加入类似于您的方法的值。
如果保证至少存在一个值,我在循环中连接始终使用前导逗号并使用值的substr(1)