sqlite android中特定数据值的查询表列
我试图查询我的数据库,以便它只返回特定列中具有特定值的行。但当我运行它时,它仍然返回所有行。请看一下代码,看看我是否做得不对。我正在尝试查询优先级列中的字符串。我想在listview中显示这些特定行。多谢各位sqlite android中特定数据值的查询表列,android,Android,我试图查询我的数据库,以便它只返回特定列中具有特定值的行。但当我运行它时,它仍然返回所有行。请看一下代码,看看我是否做得不对。我正在尝试查询优先级列中的字符串。我想在listview中显示这些特定行。多谢各位 private static final String DATABASE_NAME = "MemoData.db"; private static final int DATABASE_VERSION = 1; public static final String
private static final String DATABASE_NAME = "MemoData.db";
private static final int DATABASE_VERSION = 1;
public static final String DATABASE_TABLE = "Places";
public static final String KEY_ID = "_id";
public static final String NAME = "Title";
public static final String CATEGORY = "category";
public static final String PRIORITY = "priority";
private static final String TAG = "DBAdapter";
private static final String DATABASE_CREATE = "create table Places (_id integer primary key autoincrement, Title text, category text, priority text);";
public Cursor priorityData(){
String[] resultColumns = new String[] {KEY_ID,NAME,CATEGORY,PRIORITY };
String[] condition = {"High"};
Cursor cursor = db.query(DATABASE_TABLE, resultColumns, KEY_ID + "=" + "?", condition, null, null, null);
if(cursor.moveToNext()){
return cursor;
}
return cursor;
}
优先级列的值可以是“低”、“中”或“高”。我试图查询数据库以返回优先级列中值设置为“高”的行
我正在尝试查询优先级列中的字符串
所以你的过滤器应该是
优先级+“=?”
而不是
KEY\u ID+“=”+“?”
另外,用一个文本列来保存一组有限的可能性中的值也不是一个好主意,您正在筛选这些可能性,最后一个if没有意义 我认为他的意思是您应该对
优先级
变量使用ENUM
类型,因为它的可能性有限
所以看起来应该是这样的:
priority ENUM('LOW','MEDIUM','HIGH') NOT NULL DEFAULT 'MEDIUM'
您尚未向我们提供数据库架构或代码段中大多数常量的值。很抱歉,我不确定您真正的意思。但常量是数据库表的列。我已经编辑了上面的问题,以防这就是你的意思。但是如果你需要不同的东西,请告诉我。谢天谢地,againI还没有在android中使用db,但是在“=”符号:KEY_ID+“=”前后需要一个空格吗?“我真的不知道,我对sqlite db没有太多经验,但我猜也是这样。但是如果您有使用sqlite db的经验。。你能告诉我代码是否正确或者我做错了什么吗?嘿,谢谢,它能工作!如果你有时间,你能告诉我为什么用文本值来保存列不是个好主意吗。正如我所说,我对sql太有经验了;所以对我来说,一切都像是在学习。请忽略if语句,这是我的一个错误。再次感谢