Java 用SQLite过滤具体数据
我有一个简单的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
_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岁的位置选择