NodeJS MSSQL WHERE IN准备的SQL语句
NodeJS MSSQL WHERE IN Prepared SQL Statement
我使用nodejs npm包sql
我目前有一系列的产品sku,比如…
var skus = ['product1', 'product2', 'product3'];
我的sql存储在一个文件中,如下所示。。。
SELECT *
FROM stock AS s
WHERE s.sku IN (@skus)
然后我还有我准备好的语句代码如下。。
var connection = new sql.Connection(config, function(err) {
var ps = new sql.PreparedStatement(connection);
//Add params
if(params != undefined){
for(var key in params){
ps.input(key, sql.VarChar(200));
}
}
ps.prepare(sqlstatement, function(err) {
ps.execute(params, function(err, data) {
callback(null, data);
ps.unprepare(function(err) {
});
});
});
});
}
skus
正确地包含在params
对象中,因为当我将其用于简单的WHERE X = @Y
时,该语句运行良好。我只是在努力解决如何传递skus
的数组以允许它们在准备好的语句中工作。
我正在使用split
和join
修改字符串,以逗号分隔它们等,但我无法使用这些方法。
我假设我需要param字符串看起来像下面的'product1','product2','product3'
。
如果有人能说明如何调试已准备好的完整语句,这样我就可以看到实际查询到的SQL(带params)是什么,这也会很有用
非常感谢!
sql
对象(即mssql
模块)似乎没有处理任何数组的属性。此外,在对ps.input
的调用中指定标量类型同样不起作用。
下一个最好的方法是将参数数组的键构建到sql语句本身中:
var connection = new sql.Connection(config, function(err) {
var ps = new sql.PreparedStatement(connection);
// Construct an object of parameters, using arbitrary keys
var paramsObj = params.reduce((obj, val, idx) => {
obj[`id${idx}`] = val;
ps.input(`id${idx}`, sql.VarChar(200));
return obj;
}, {});
// Manually insert the params' arbitrary keys into the statement
var stmt = 'select * from table where id in (' + Object.keys(paramsObj).map((o) => {return '@'+o}).join(',') + ')';
ps.prepare(stmt, function(err) {
ps.execute(paramsObj, function(err, data) {
callback(null, data);
ps.unprepare(function(err) {
});
});
});
});
}
相关文章:
- 通过.js将值传递到php,然后在SQL语句中使用
- 使用“;AS“;alasql(AngularJS)中SQL语句中的子句
- SQL语句是通过PhoneGap'按顺序执行的吗;的Web SQL数据库
- WebSQL:处理SQL时出错:数量为''语句字符串中的s与参数计数不匹配
- 根据用户表单输入动态生成 SQL 语句
- 我把sql语句存储在数据库中的地方,用于blueimp / jQuery-File-Upload
- 尝试将使用 SQL 语句生成的 JSON 数据从 PHP 脚本返回到 JS 网页,但改为 null
- 插入多行 sql 语句音差
- Web Sql 选择语句无法提取第三列
- 使用正则表达式提取 SQL 语句的各个部分
- Oracle Node js - Javascript - SQL 语句中的 IN 子句绑定变量
- Redis SINTER 语句是否与 SQL WHERE 语句相当
- 如何在Jquery中搜索类似SQL like value%语句的数组
- javascript中的SQL语句
- 使用node-sqlite3将变量绑定到SQL语句
- 使用php的动态变量从sql select和update语句的下拉列表中获取
- NodeJS MSSQL WHERE IN准备的SQL语句
- 基于用户输入编译动态ADODB SQL语句的最佳方法
- webkit执行sql语句和循环问题
- 根据用户输入的MySQL创建SQL语句