Man*_*tha 3 javascript sql sqlite
在 中Javascript SQLite,我们是否有更好的方法可以执行SELECT带有WHERE IN子句的语句?我们以以下查询为例:
var ids = [1, 5, 10];
function getBranches (ids) {
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM Branch WHERE id in ?', [ids], function(tx,results){
// process results
});
});
}
Run Code Online (Sandbox Code Playgroud)
我知道我们总是可以以如下所示的WHERE IN方式识别 ids 的子句格式。SQL但我想知道是否有一个很好的方法来实现这个要求。
function getBranches (ids) {
db.transaction(function(tx) {
var idClause = ' id in (\"' + ids.join("\",\"") + '\");';
tx.executeSql('SELECT * FROM Branch WHERE ' + idClause, [], function(tx,results){
// process results
});
});
}
Run Code Online (Sandbox Code Playgroud)
解决方案一:
一种方法是不使用占位符?:
'SELECT * FROM test WHERE col1 in (' + ids.join(',') + ')', [],...
Run Code Online (Sandbox Code Playgroud)
解决方案2:
另一种方法是按照示例中的方式执行精美的准备好的语句样式,其中您需要输入的确切数量?等于参数的数量。
var ids = [1, 5, 10];
var placeHolders = new Array(ids.length).fill('?').join(',');
var query = 'SELECT * FROM Branch WHERE id in ('+ placeHolders + ')';
tx.executeSql(query, [ids], ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1520 次 |
| 最近记录: |