Java SQLITE数据库查询
我的数据库id、message和message status中有三列,我只想从列表中选择消息状态为“r”的行,并且只想从查询中返回游标以查找id和message。我是数据库新手,请帮忙。 选择所有行的当前代码为:Java SQLITE数据库查询,java,android,mysql,sql,sqlite,Java,Android,Mysql,Sql,Sqlite,我的数据库id、message和message status中有三列,我只想从列表中选择消息状态为“r”的行,并且只想从查询中返回游标以查找id和message。我是数据库新手,请帮忙。 选择所有行的当前代码为: private String[] allColumns = { MySQLiteHelper.COLUMN_ID,MySQLiteHelper.COLUMN_MESSAGE }; public List<Message> getAllMessages() { Li
private String[] allColumns = { MySQLiteHelper.COLUMN_ID,MySQLiteHelper.COLUMN_MESSAGE };
public List<Message> getAllMessages() {
List<Message> message = new ArrayList<Message>();
Cursor cursor = database.query(MySQLiteHelper.TABLE_NAME,allColumns, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
Message message1 = cursorToMessage(cursor);
message.add(message1);
cursor.moveToNext();
}
// Make sure to close the cursor
cursor.close();
return message;
}
private String[]allColumns={MySQLiteHelper.COLUMN\u ID,MySQLiteHelper.COLUMN\u MESSAGE};
公共列表getAllMessages(){
列表消息=新建ArrayList();
Cursor Cursor=database.query(MySQLiteHelper.TABLE_NAME,allColumns,null,null,null,null);
cursor.moveToFirst();
而(!cursor.isAfterLast()){
消息message1=游标消息(游标);
message.add(message1);
cursor.moveToNext();
}
//确保关闭光标
cursor.close();
返回消息;
}
您需要在查询中传递Where子句。它是query()
的第四个参数。它需要一个字符串
,您不应该在其中包含Sqlite3关键字(Android会为您这样做)。该子句的结构类似于MySQLiteHelper.COLUMN\u MESSAGE+“=”+“r”请尝试以下代码
public static final String KEY_ROWID = "row";
public static final String KEY_NAME = "name";
public Cursor fetchNamesByConstraint(String filter) {
Cursor cursor = mDb.query(true, DATABASE_NAMES_TABLE, null, "row LIKE '%" + filter + "%' or name LIKE '%" + filter + "%'",null, null, null, null);
}
public static final String KEY_ROWID = "row";
public static final String KEY_NAME = "name";
public Cursor fetchNamesByConstraint(String filter) {
Cursor cursor = mDb.query(true, DATABASE_NAMES_TABLE, null, "row LIKE '%" + filter + "%' or name LIKE '%" + filter + "%'",null, null, null, null);
}