2015-12-18 5 views
0

В JavascriptSQLite, есть ли лучший способ, которым мы можем выполнить оператор SELECT с предложением WHERE IN? Давайте рассмотрим следующий запрос в качестве примера:Jitecript 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 
     }); 

    }); 
} 

Я знаю, что мы всегда можем форматировать положение WHERE IN для ид таким образом 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 
      }); 

     }); 
    } 

ответ

1

обмен

'SELECT * FROM Branch WHERE id in ?', [ids], 

с

'SELECT * FROM test WHERE col1 in (' + ids.join(',') + ')', [], 
+0

Ids.join() выглядят очень неаккуратно и подвержен ошибкам (обычно не работают при первом запуске). Но это единственное решение, которое я использовал для подобных случаев. Один голос за ваше решение. Я должен был включить это в вопрос раньше, что я только что сделал. Благодарю. –

Смежные вопросы