问题描述
|
我正在编写一个android应用程序,它试图基于两个单独的条件从数据库中提取数据。
锻炼和锻炼的字段都是数据库中的字符串。我只想返回一个游标,同时满足两个条件。哦,我也希望按日期顺序对其进行排序...
public Cursor graphQuery(String exercise,String workout) {
Cursor cursor = mDb.query(DATABASE_TABLE,new String [] {KEY_DATE,KEY_REPS,KEY_REPS_FEEL,KEY_WEIGHT,KEY_WEIGHT_FEEL},\"KEY_WORKOUT=\" + workout + \"AND\" +
\"KEY_EXERCISE=\" + exercise,null,KEY_DATE);
return cursor;
}
我是一个新的android编码器,将不胜感激!
解决方法
使用
selection
和selectionArgs
:
public Cursor graphQuery(String exercise,String workout) {
Cursor cursor = mDb.query(DATABASE_TABLE,new String [] {KEY_DATE,KEY_REPS,KEY_REPS_FEEL,KEY_WEIGHT,KEY_WEIGHT_FEEL},\"KEY_WORKOUT = ? AND KEY_EXERCISE = ?\",new String[] { workout,exercise },null,KEY_DATE);
return cursor;
}
注意selection
ѭ5how是?
代替实际值,并且实际值作为String[]
和selectionArgs
参数传递。 SQLite将用String[]
selectionArgs
中的值替换那些ѭ6。
, 简短答案:\“ AND \”-> \“ AND \”周围缺少空格。:
长答案:请使用参数标记-您会立即看到缺失的空格:
Cursor cursor = mDb.query(DATABASE_TABLE,new String [] { KEY_DATE,KEY_WEIGHT_FEEL },\"KEY_WORKOUT=? and KEY_EXERCISE=?\",KEY_DATE);