【发布时间】:2014-10-30 06:37:18
【问题描述】:
我正在尝试编写一个在 SQL 中看起来像这样的查询:
select * from WorkOrder wo
where wo.userId = 1
and wo.isSynced = 0
and wo.status in ('COMPLETE', 'REJECTED', 'SUSPENDED_NO_ACCESS', 'SUSPENDED_OTHER');
我在 userId、isSynced 和 status 上添加了一个索引。
如果我构建如下查询,只要我只过滤 2 个不同的状态值,它就可以工作。只要我添加 3 个或更多,它就不会返回任何结果。我做错了什么还是需要以完全不同的方式解决这个问题?
//this works
var keyRange = ydn.db.KeyRange.bound([userId, 0, Status.Complete],
[userId, 0, Status.REJECTED]);
//this doesn't work
var keyRange = ydn.db.KeyRange.bound([userId, 0, Status.Complete],
[userId, 0, Status.Suspended_AccessUnavailable],
[userId, 0, Status.REJECTED]);
var iterator = new ydn.db.IndexValueIterator(Store.WorkOrder, 'userId, isSynced, status', keyRange);
return db.values(iterator)
【问题讨论】: