使用 SQLite 过滤具体数据

Filtering concrete data with SQLite

我有这个简单的 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 的方法,正如我在我的代码中所写的那样。

正确的做法是什么?

提前致谢。

您需要像这样使用 query() 方法的第 3 个和第 4 个参数:

db.query(
    TABLE_NAME, 
    columnas, 
    "age > ?", 
    new String[] {String.valueOf(40)}, 
    null, null, CN_AGE+" ASC"
);

3d 参数是 SQL 语句的 WHERE 部分(没有关键字 WHERE)并且可能包含占位符 ?,它将被第 4 个参数中的数组项。
所以 3d 参数中的占位符 ? 将被替换为 "40" 并且语句最终将是:

SELECT <columnas> FROM <TABLE_NAME> WHERE age > 30