2

SELECT DISTINCT sql コマンドを使用して、データベース列からすべての一意の値を取得しようとしています。しかし、アクティビティがロードされているときに例外が発生します。logcat に次のエラー コードがあります。

05-05 09:08:32.637: E/AndroidRuntime(1314): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.workoutlog/com.example.workoutlog.AddWorkOutPage}: android.database.sqlite.SQLiteException: near "SELECT": syntax error (code 1): , while compiling: SELECT * FROM exerciseTable WHERE SELECT DISTINCTexercise_typefromexerciseTable

コマンドを正しく記述していないと思います。これが私のコードです。

public String[] getAllExercies() {
        String selecet = "SELECT DISTINCT" + COLUMN_EXERCISE + "from" + TABLE_NAME;
        Cursor c = ourDatabase.query(TABLE_NAME, null, selecet, null, null, null, null);
        int dayExercise = c.getColumnIndex(COLUMN_EXERCISE);

        String[] list = new String[c.getCount()-1];
        int j = 0;
        for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
            list[j] = c.getString(dayExercise);
            j++;
        }

        return list;
    }
4

3 に答える 3

1

問題:space単語 の間を維持していません。

説明:

仮定する、String COLUMN_EXERCISE = "exercise";

String TABLE_NAME = "tbl_workout";

それから String selecet = "SELECT DISTINCT" + COLUMN_EXERCISE + "from" + TABLE_NAME;

単純に、SELECT DISTINCTexercisefromtbl_workout

解決:

String selecet = "SELECT DISTINCT " + COLUMN_EXERCISE + " from " + TABLE_NAME;

編集:

次の構文を使用して rawQuery を起動してください

Cursor c = ourDatabase.rawQuery(selecet,null);

お役に立てば幸いです!

于 2013-05-05T10:08:18.843 に答える
0

クエリにすべてのスペースがありません。次のように置き換えてください。

String selecet = "SELECT DISTINCT " + COLUMN_EXERCISE + " FROM " + TABLE_NAME;
于 2013-05-05T09:23:08.720 に答える