Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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
Android 如何在两个条件下查询SQLite数据库?_Android_Sql_Sqlite - Fatal编程技术网

Android 如何在两个条件下查询SQLite数据库?

Android 如何在两个条件下查询SQLite数据库?,android,sql,sqlite,Android,Sql,Sqlite,我有一个关于employee的表,有3列,如下代码: db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + DEPT + " TEXT NOT NULL," + NAME + " TEXT NOT NULL," + CITY + " TEXT NOT NULL);"); 现在我只想展示同一部门

我有一个关于employee的表,有3列,如下代码:

 db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID
                + " INTEGER PRIMARY KEY AUTOINCREMENT, " + DEPT
                + " TEXT NOT NULL," + NAME + " TEXT NOT NULL," + CITY + " TEXT NOT NULL);");

现在我只想展示同一部门和城市的员工(即HCM城市和销售部门的员工)。我如何查询才能得到它?

@DienTrinh,你说得对,注意
周围的空格。那应该对你有用

SELECT * FROM Employees WHERE DEPT='Sales' AND City='HCM'
 Cursor cursor = db.query(TABLE_NAME, 
                          new String [] {_ID, NAME, DEPT, CITY }, 
                          DEPT +"=?" +" AND " + CITY +"=?", 
                          new String[] {"Sales", "HCM" }, 
                          null, null, null);
解决办法是:

SELECT * FROM Employess 
WHERE DEPT='Sales' COLLATE NOCASE AND City='HCM' COLLATE NOCASE

它在SQL中工作,但在SQLite中不工作。如何在SQLite中使用该命令,语法为:db.query(表、列、选择、selectionArgs、groupBy、have、orderBy)。我尝试使用Cursor Cursor=db.query(表名、新字符串[]{ID、名称、部门、城市}、部门+“=?”+”和“+CITY+”=?”,新字符串[]{“Sales”、“HCM”},null,null,null);。但是仿真器显示了一个错误:这种类型的查询不应该使用db.rawQuery方法而不是db.query来运行吗?我想这就是问题所在。