Groupで始まり(General)で終わる次のパターンの 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)
誰かがそれを達成する方法を教えてくれますか?