2015-10-27 31 views
1

我用GreenDao選擇,我有這個類中定義的實體:GreenDao範圍內與BETWEEN操作

Dot { 
    String name; 
    float value; 
} 

,我想從我的數據庫中提取,在值之間有一個值的所有點 - 1和價值+ 1。 SQL查詢應該是LIK這樣的:

SELECT * FROM dot WHERE value BETWEEN(value-1, value+1) 

我可以做同樣的GreenDao,也許:

QueryBuilder<Dot> query = DotDao.queryBuilder(); 
query.where(DotDao.Properties.Value.between(DotDao.Properties.Value-1, DotDao.Properties.Value+1)); 
List<Range> rangeList = query.list(); 

那是可能的,或者我必須使用一些原始查詢?

回答

0

您可以使用AND運算符。

例如:

QueryBuilder<Dot> query = DotDao.queryBuilder(); 
List<Range> rangeList = query.where(DotDao.Properties.Value.ge(value - 1), DotDao.Properties.Value.le(value + 1)) 
.list(); 

詳細http://greendao-orm.com/documentation/queries/

+0

的** **值是內部DATABSE。我不能只寫值 - 1.我的**值**實際上是數據庫的列名。 – shadox