首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用多个条件查询

使用多个条件查询
EN

Stack Overflow用户
提问于 2011-06-20 07:19:06
回答 5查看 37.5K关注 0票数 35

我最近发现(遗憾的是) HTML5不再支持WebSQL,IndexedDB将取而代之。

我想知道是否有类似于使用IndexedDB搜索满足多个条件的条目的方法来查询或搜索SQL的条目。

我已经看到,我可以在KeyRange中使用一个条件来搜索IndexedDB。但是,我似乎找不到任何方法来搜索两列或更多列的数据,除非从数据库中获取所有数据并使用for循环进行搜索。

我知道这是一个在浏览器中几乎没有实现的新功能,但我有一个项目正在启动,我正在研究我可以做到的不同方法。

谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-03-25 00:16:56

关于同样的问题,请查看this answer。它比我在这里给出的答案更详细。store.createIndex和IDBKeyRange方法can be an array的keypath参数。所以,举个粗略的例子:

代码语言:javascript
代码运行次数:0
运行
复制
// In onupgradeneeded
var store = db.createObjectStore('mystore');
store.createIndex('myindex', ['prop1','prop2'], {unique:false});

// In your query section
var transaction = db.transaction('mystore','readonly');
var store = transaction.objectStore('mystore');
var index = store.index('myindex');
// Select only those records where prop1=value1 and prop2=value2
var request = index.openCursor(IDBKeyRange.only([value1, value2]));
// Select the first matching record
var request = index.get(IDBKeyRange.only([value1, value2]));
票数 38
EN

Stack Overflow用户

发布于 2017-09-05 15:29:39

假设您的SQL查询类似于:

代码语言:javascript
代码运行次数:0
运行
复制
SELECT * FROM TableName WHERE Column1 = 'value1' AND Column2 = 'value2'

JsStore库中的等效查询:

代码语言:javascript
代码运行次数:0
运行
复制
var Connection = new JsStore.Instance("YourDbName");
Connection.select({
    From: "YourTableName"
    Where: {
        Column1: 'value1',
        Column2: 'value2'
    },
    OnSuccess:function (results){
        console.log(results);
    },
    OnError:function (error) {
        console.log(error);
    }
});

现在,如果您想知道JsStore是什么,让我告诉您它是一个以简化方式查询IndexedDB的库。Click here了解有关JsStore的更多信息

票数 6
EN

Stack Overflow用户

发布于 2012-01-15 11:24:09

我在回答这个问题时提到了一些关于查询关系的建议,这可能会引起人们的兴趣:

Conceptual problems with IndexedDB (relationships etc.)

至于一次查询多个字段,在IndexedDB中看起来没有一种本机方法可以做到这一点(我可能是错的;我还是个新手),但是您肯定可以创建一个帮助函数,对每个字段使用单独的游标,并对它们进行迭代,以查看哪些记录满足所有条件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6405650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档