SQLiteDatabase.query orderBy cluase: «SELECT»: синтаксическая ошибка (код 1 SQLITE_ERROR): - PullRequest
0 голосов
/ 25 января 2020

Я нашел следующий синтаксис для предложения orderBy:

        String orderBy = "SELECT * FROM " + TABLE + " ORDER BY " + COL_NAME + ";";

, но он выдает эту ошибку:

E / SQLite Исключение: рядом с "SELECT": синтаксическая ошибка (код 1 SQLITE_ERROR): во время компиляции: SELECT _id, имя, организация, телефон, адрес, электронная почта, web_ad, inf, день рождения ОТ контакта ORDER BY SELECT * ИЗ контакта ORDER BY name;

Я хочу отсортировать записи в моей базе данных в алфавитном порядке по их именам, используя метод SQLiteDatabase.query ().

    String orderBy = "SELECT * FROM " + TABLE + " ORDER BY " + COL_NAME + ";";

    try {
        SQLiteDatabase db = this.getReadableDatabase();
        return db.query( ContactHelper.TABLE, projection, null, null, null, null, orderBy);
    }catch (Exception e){
        Log.e("SQLite Exception", e.getMessage());
        return null;
    }

какую ошибку я совершаю?

1 Ответ

2 голосов
/ 25 января 2020

Аргумент orderBy метода query() должен содержать только имя столбца, а не полный оператор select. Измените это на:

db.query( ContactHelper.TABLE, projection, null, null, null, null, COL_NAME);

Обычно этот аргумент должен содержать предложение ORDER BY оператора , исключая сам ORDER BY .

ASC необязательно. Если вы опустите его, то будет использоваться ASC. Если вы хотите DESC, вы должны написать: COL_NAME + " DESC" Вы можете найти больше здесь: запрос метод.

...