假设我有一个包含2个字段的表:Number
和Description
,我想从我请求的数字中获取说明。
例如:我请求数字22.但是在数据库中,没有与值22匹配的行。
我需要编写一个查询来获取该数字的范围在+5到-5 之间,并且获取数据库中最近的数据。也就是说,当我请求22时,我希望得到"rty"
作为描述。
Table
Num |Description
--------+-----------
25 |ASD
18 |wert
21 |rty
答案 0 :(得分:2)
这应该是理想的工作。将返回包含表中所有结果的游标。
db.rawQuery("SELECT Description FROM Table_Name WHERE Num BETWEEN "+(inputNumber-Range)+" AND "+(inputNumber+Range) +"ORDER BY (Num- "+inputNumber+")", null);
编辑:我很高兴上述查询适合您。但我认为此查询是您明确提出的问题的正确答案
db.rawQuery("SELECT Description FROM Table_Name WHERE Num BETWEEN "+(inputNumber-Range)+" AND "+(inputNumber+Range) +"ORDER BY ABS(Num- "+inputNumber+")", null);
取绝对值以避免负差异
答案 1 :(得分:0)
像这种方法一样使用
public Cursor get_result(){
Cursor c;
String sql = "SELECT * FROM " + tableName +"WHERE _id BETWEEN" + value1 +"AND" + value2;
c = productDatabase.rawQuery(sql, null);
}
答案 2 :(得分:0)
您可以按如下方式编写查询
String query = "SELECT Description FROM Table_Name WHERE Num BETWEEN " + (inputNumber - Range)
+ " AND " + (inputNumber + Range) + "ORDER BY (Price - " + inputNumber + ")";
您也可以访问Android SQLite "BETWEEN" not inclusive or returns all records