Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sqlite android中特定数据值的查询表列_Android - Fatal编程技术网

sqlite android中特定数据值的查询表列

sqlite android中特定数据值的查询表列,android,Android,我试图查询我的数据库,以便它只返回特定列中具有特定值的行。但当我运行它时,它仍然返回所有行。请看一下代码,看看我是否做得不对。我正在尝试查询优先级列中的字符串。我想在listview中显示这些特定行。多谢各位 private static final String DATABASE_NAME = "MemoData.db"; private static final int DATABASE_VERSION = 1; public static final String

我试图查询我的数据库,以便它只返回特定列中具有特定值的行。但当我运行它时,它仍然返回所有行。请看一下代码,看看我是否做得不对。我正在尝试查询优先级列中的字符串。我想在listview中显示这些特定行。多谢各位

   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语句,这是我的一个错误。再次感谢