Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
klim76
20 / 14 / 2
Регистрация: 10.06.2016
Сообщений: 135
#1

Sql-light поиск 'like' без учета регистра - Android

24.08.2016, 02:11. Просмотров 234. Ответов 4
Метки нет (Все метки)

Столкнулся с проблемой оператора like, в документации пишется что от работает без учета регистра, но только с набором символов ASCII (ссыль). Так что с русскими буквами он чувствителен к регистру.... как такое пофиксить?
у меня сейчас так:
Java
1
2
3
4
5
6
7
public Cursor getValidCities(String city) {
        String sqlQuery = "select " + COLUMN_ID + ", " + COLUMN_CITIES_NAME + " "
                + "from " + TABLE_CITIES + " "
                + "where UPPER(" + COLUMN_CITIES_NAME + ") LIKE ? "
                + "order by " + COLUMN_CITIES_NAME ;
        return mDB.rawQuery(sqlQuery, new String[]{"%"+city+"%"});
    }
- не работает
кто нибудь сталкивался?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2016, 02:11     Sql-light поиск 'like' без учета регистра
Посмотрите здесь:

Android+ms sql 2008 R2 Android
Android Приложение без сна
SQL запрос Android
Android Дата без времени
Android Нужен наставник при создания приложения введения учета финансов
Activity без AndroidManifest Android
Android Программное изменение регистра клавиатуры
Как средствами джавы реализовать просмотр базы данных Access, SQL Server, SQL Server Compact и запись в нее? Android
Sql lite, установка Android
Android Лайаут без наложения
Android Добавление данных в sql
Android Логин/пароль (БД MS SQL)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
24.08.2016, 11:53     Sql-light поиск 'like' без учета регистра #2
klim76, сталкивались. Вопрос этот поднимался много раз. Решение пока одно: делать дополнительное поле, содержащее строчки в нижнем (верхнем) регистре. Избыточность высокая, но что поделаешь.
Может быть, переход на другую СУБД.
REALIST07
Автор FAQ
Автор FAQ
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
25.08.2016, 00:52     Sql-light поиск 'like' без учета регистра #3
klim76, ну или как вариант можно записать данные в модельный класс в ArrayList и искать уже в нем, типа
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public ArrayList<Model> getValidCities() {
        Cursor c = mDB.rawQuery("Select * From "+TABLE_CITIES , new String[]{"%"+city+"%"})
        ArrayList<Model> list = new ArrayList<>();
        if (c != null && c.moveToFirst())
        {
            do
            {
                Model item = new Model(
                        c.getLong(0), // id
                       c.getString(1), // name
                        );
 
           
                list.add(item);
            }
            while (c.moveToNext());
        }
        if( c != null && !c.isClosed()) c.Close()
        return  list;
    }
klim76
20 / 14 / 2
Регистрация: 10.06.2016
Сообщений: 135
25.08.2016, 14:00  [ТС]     Sql-light поиск 'like' без учета регистра #4
REALIST07, это то понятно что можно, а как потом в списке этом искать живьем - "при вводе полуслова"?
REALIST07
Автор FAQ
Автор FAQ
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
26.08.2016, 10:35     Sql-light поиск 'like' без учета регистра #5
klim76, элементарно же
Java
1
2
3
4
 for (Model m : getValidCities())
       if(m.getCity().contains("полуслово") && m.getCity().contains("еще полуслово")) { 
         ...
       }
Yandex
Объявления
26.08.2016, 10:35     Sql-light поиск 'like' без учета регистра
Ответ Создать тему
Опции темы

Текущее время: 09:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru