Android заказ sqlite таблица с заглавной и без заглавной буквы - PullRequest
1 голос
/ 13 марта 2012

Я запрашиваю определенные таблицы базы данных sqlite:

public Cursor showAllTables(){
        String mySql = " SELECT name FROM sqlite_master " + " WHERE type='table'             "
                + "   AND name LIKE 'PR_%' ORDER BY name";
        return ourDatabase.rawQuery(mySql, null);
    }

Я получаю этот результат:

  • Шевроле
  • Ferrari
  • Мазерати
  • bugatti
  • Хюндай

Как я могу заказать список независимо от того, является ли первая буква заглавной или нет?

Ответы [ 2 ]

2 голосов
/ 13 марта 2012

Вы можете попробовать это:

public Cursor showAllTables(){
    String mySql = " SELECT name FROM sqlite_master " + " WHERE type='table'             "
                    + "   AND name LIKE 'PR_%' ORDER BY lower(name)";
    return ourDatabase.rawQuery(mySql, null);
}

Я изменил только имя с более низким (имя).

2 голосов
/ 13 марта 2012

Вам нужно будет добавить COLLATE NOCASE в конец вашего запроса:

public Cursor showAllTables(){
        String mySql = " SELECT name FROM sqlite_master " + " WHERE type='table'             "
                + "   AND name LIKE 'PR_%' ORDER BY name COLLATE NOCASE";
        return ourDatabase.rawQuery(mySql, null);
    }

Или вы можете воссоздать таблицу и добавить COLLATE NOCASE к определению столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...