Java 用SQLite过滤具体数据

Java 用SQLite过滤具体数据,java,android,sqlite,android-sqlite,android-cursor,Java,Android,Sqlite,Android Sqlite,Android Cursor,我有一个简单的sqlite数据库: _id ----- name ----- age ----- phone 01 John 34 111 02 Mary 44 222 03 Anna 53 333 要显示列表中的所有联系人,我使用光标如下: public Cursor loadCursorContacts (){ Strin

我有一个简单的sqlite数据库:

_id  ----- name -----  age  -----  phone

01        John         34           111
02        Mary         44           222
03        Anna         53           333
要显示列表中的所有联系人,我使用光标如下:

public Cursor loadCursorContacts (){

    String[] columns = new String[] {CN_ID, CN_NAME, CN_PHONE, CN_AGE};

    return db.query(TABLE_NAME, columnas, null, null, null, null, CN_AGE+" ASC");

}
我的意图是只显示与40岁以上的人的接触。 我正在寻找并且可以找到使用rawQuery的方法(尽管我还没有成功地将其应用于游标),但是我找不到使用sqlite语法db.query的方法,就像我在代码中所做的那样

正确的方法是什么


提前感谢。

您需要像这样使用该方法的3d和第4个参数:

db.query(
    TABLE_NAME, 
    columnas, 
    "age > ?", 
    new String[] {String.valueOf(40)}, 
    null, null, CN_AGE+" ASC"
);
3d参数是SQL语句的
WHERE
部分(不带关键字
WHERE
),可能包括占位符
,占位符将被第四个参数中的数组项替换。
因此,3d参数中的占位符
将替换为
“40”
,语句最终将为:

SELECT <columnas> FROM <TABLE_NAME> WHERE age > 30
从年龄>30岁的位置选择

您需要像这样使用该方法的3d和第4个参数:

db.query(
    TABLE_NAME, 
    columnas, 
    "age > ?", 
    new String[] {String.valueOf(40)}, 
    null, null, CN_AGE+" ASC"
);
3d参数是SQL语句的
WHERE
部分(不带关键字
WHERE
),可能包括占位符
,占位符将被第四个参数中的数组项替换。
因此,3d参数中的占位符
将替换为
“40”
,语句最终将为:

SELECT <columnas> FROM <TABLE_NAME> WHERE age > 30
从年龄>30岁的位置选择