我正在尝试从SQLite数据库中获取所有来自以下模式的行,该模式以组开头,以(常规)结束。:
Group n (General)
Group n+1 (General)
Group n+1+... (General)
因为,我第一次使用SQL,目前我尝试使用原始查询,如下所示。这是抛出一个SQLException,因为我的查询不正确。
Cursor cursor = mDatabase.rawQuery("SELECT DISTINCT " + KEY_LOCATION
+ " FROM " + FTS_VIRTUAL_TABLE + " ORDER BY " + KEY_LOCATION
+ " ASC" + " WHERE " + KEY_LOCATION + " LIKE '"
+ "%Group%%%%General%" + "'", null);
以下是执行上面的堆栈跟踪:
03-08 09:38:49.340: E/AndroidRuntime(4082): FATAL EXCEPTION: main 03-08 09:38:49.340: E/AndroidRuntime(4082): android.database.sqlite.SQLiteException: near "WHERE": syntax error (code 1): , while compiling: SELECT DISTINCT suggest_text_1 FROM FTSlocation ORDER BY suggest_text_1 ASC WHERE suggest_text_1 LIKE '%Group%%%%General%'
03-08 09:38:49.340: E/AndroidRuntime(4082): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
03-08 09:38:49.340: E/AndroidRuntime(4082): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
03-08 09:38:49.340: E/AndroidRuntime(4082): at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
03-08 09:38:49.340: E/AndroidRuntime(4082): at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
03-08 09:38:49.340: E/AndroidRuntime(4082): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
03-08 09:38:49.340: E/AndroidRuntime(4082): at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
03-08 09:38:49.340: E/AndroidRuntime(4082): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
03-08 09:38:49.340: E/AndroidRuntime(4082): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
03-08 09:38:49.340: E/AndroidRuntime(4082): at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1253)
任何人都可以指导我如何实现它,或者可能暗示我该如何进行?
答案 0 :(得分:0)
在ORDER BY
之后设置WHERE
子句。
那应该成功