如何在Sqlite Android中编写范围查询?

时间:2014-04-08 04:37:47

标签: android sql sqlite

假设我有一个包含2个字段的表:NumberDescription,我想从我请求的数字中获取说明。

例如:我请求数字22.但是在数据库中,没有与值22匹配的行。

我需要编写一个查询来获取该数字的范围在+5到-5 之间,并且获取数据库中最近的数据。也就是说,当我请求22时,我希望得到"rty"作为描述。

Table

Num     |Description
--------+-----------
25      |ASD
18      |wert
21      |rty

3 个答案:

答案 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