Android sqlite在哪里,喜欢和orderby在一起

时间:2013-03-08 01:43:34

标签: android sqlite sql-like

我正在尝试从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)

任何人都可以指导我如何实现它,或者可能暗示我该如何进行?

1 个答案:

答案 0 :(得分:0)

ORDER BY之后设置WHERE子句。

那应该成功