我在ormlite中写了一个查询,如下所示
Where<Advertisement, Integer> where = queryBuilder.where();
where.and(
where.between("latitude", pLatitude - APPOXIMATION_FACTOR,
pLatitude + APPOXIMATION_FACTOR),
where.between("longitude", pLongitude - APPOXIMATION_FACTOR,
pLongitude + APPOXIMATION_FACTOR)
.and().between("width", pWidth - APPOXIMATION_FACTOR,
pWidth + APPOXIMATION_FACTOR),
);
Run Code Online (Sandbox Code Playgroud)
还有一个和这个
for (int iterator = 0; iterator < moduleList.size(); iterator++) {
where.eq("id", moduleList.get(iterator).getmId());
if (iterator != advertisementList.size() - 1){
whereForModuleID.or();
}
}
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,我被困在如何写查询
寻求帮助
在第二种情况下,我将使用where.in(String,Iterable)方法.你应该做这样的事情:
List<Integer> idList = new ArrayList<Integer>();
for (Module module : moduleList) {
idList.add(module.getmId());
}
where.in("id", idList);
Run Code Online (Sandbox Code Playgroud)
这变成了一个SQL查询,如:
SELECT * `foo` WHERE `id` IN (7, 17, 1, 34)
Run Code Online (Sandbox Code Playgroud)
以下是有关以下内容的文档where.in():
就原始问题而言,请参阅此答案where.and(int)以及or(int)方法.
| 归档时间: |
|
| 查看次数: |
3400 次 |
| 最近记录: |