2 :
- A columnB. . .
- ['ABC', '123thd'] .
- ['DFT', '123thd'] .
1 :
, ,
. ,
SQL. , , , indexedDB. .
function myOnUpgradeNeeded(event) {
var db = event.target.result;
var store = db.createObjectStore('MyTable');
store.createIndex('A_ABC_OR_DFT_AND_B', ['ABC_OR_DFT_FLAG','columnB']);
}
function wrappedPut(db, obj, callback) {
if(obj.columnA=='ABC'||obj.columnA=='DFT') {
obj.ABC_OR_DFT_FLAG = 1;
} else {
delete obj.ABC_OR_DFT_FLAG;
}
put(db, obj, callback);
}
function put(db, obj, callback) {
db.transaction('MyTable','readwrite').objectStore('myTable').put(obj).onsuccess = callback;
}
function runTheABCDFT123Query(db, onSuccess, onComplete) {
var tx = db.transaction('MyTable');
tx.onComplete = onComplete;
tx.objectStore('MyTable').index('A_ABC_OR_DFT_AND_B').openCursor(
IDBKeyRange.only([1,'123thd'])).onsuccess = function(event) {
if(event.target) {
onSuccess(event.target.value);
event.target.continue();
}
};
}