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

Как сделать поиск LIKE из БД не восприимчивым к регистру? - Android

Восстановить пароль Регистрация
 
yourfanat
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 177
24.10.2014, 16:04     Как сделать поиск LIKE из БД не восприимчивым к регистру? #1
Сам запрос вот -
Java
1
String sqlQuery1 = "SELECT * FROM city AS t1, region AS t2 ON t1.region_number = t2._id WHERE lower(t1.name) LIKE '%' || ? || '%';";
Нужно что б выдавался результат при вводе как маленьких, так и больших букв. Если что данные в кириллице.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2014, 16:04     Как сделать поиск LIKE из БД не восприимчивым к регистру?
Посмотрите здесь:

Android Нужно сделать регистронезависимый поиск по таблице, содержащей русские буквы
Как сделать транслит? Android
Как сделать, чтобы до того времени как одна анимация не закончится, другая не начиналась? Android
Android Как сделать просмотр содержимого в программе, как в браузере
Как сделать WebSocketClient Android
Как лучше сделать? Android
Android Как сделать таймер?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
chizz
 Аватар для chizz
979 / 493 / 54
Регистрация: 19.03.2013
Сообщений: 3,059
Записей в блоге: 18
Завершенные тесты: 1
24.10.2014, 16:10     Как сделать поиск LIKE из БД не восприимчивым к регистру? #2
yourfanat, там с кириллицей жопа какая-то. Я сделал у себя, потом гляну - отвечу.
yourfanat
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 177
24.10.2014, 16:16  [ТС]     Как сделать поиск LIKE из БД не восприимчивым к регистру? #3
Ок, спасибо) Данные нормально выводяться, нужно их сделать только невосприимчевыми к регистру)
chizz
 Аватар для chizz
979 / 493 / 54
Регистрация: 19.03.2013
Сообщений: 3,059
Записей в блоге: 18
Завершенные тесты: 1
24.10.2014, 16:24     Как сделать поиск LIKE из БД не восприимчивым к регистру? #4
yourfanat, вот в этом то и жопка

http://androidforums.ru/topic/1423-s...2%D1%80%D1%83/
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
24.10.2014, 17:31     Как сделать поиск LIKE из БД не восприимчивым к регистру? #5
yourfanat, chizz, сделайте ещё колонку одну, назовите ещё namelc (name lower case сокращённо), записывайте туда всегда toLowerCase() и ищите по этому полю в lower case.
chizz
 Аватар для chizz
979 / 493 / 54
Регистрация: 19.03.2013
Сообщений: 3,059
Записей в блоге: 18
Завершенные тесты: 1
24.10.2014, 17:33     Как сделать поиск LIKE из БД не восприимчивым к регистру? #6
YuraAAA, проблема в функции toLowerCase(). Перед тем как ее вызывать нужно текст конвертировать в utf-8 вроде (если он был в другой кодировке)
yourfanat
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 177
12.11.2014, 15:12  [ТС]     Как сделать поиск LIKE из БД не восприимчивым к регистру? #7
Колонку создал, а как туда записать то значения маленькми буквами? lower() не работает, т.к. кирилица...
Spelcrawler
521 / 491 / 110
Регистрация: 12.03.2014
Сообщений: 1,641
Завершенные тесты: 1
12.11.2014, 15:14     Как сделать поиск LIKE из БД не восприимчивым к регистру? #8
Писали ведь:
Цитата Сообщение от chizz Посмотреть сообщение
Перед тем как ее вызывать нужно текст конвертировать в utf-8 вроде (если он был в другой кодировке)
yourfanat
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 177
12.11.2014, 15:18  [ТС]     Как сделать поиск LIKE из БД не восприимчивым к регистру? #9
база данных и так в utf-8
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
12.11.2014, 15:22     Как сделать поиск LIKE из БД не восприимчивым к регистру? #10
Тоже месяц назад столкнулся с этой проблемой. Тоже собираюсь сделать дополнительные поля. Не совсем понял про кириллицу. В Java преобразование выглядит так:
Java
1
2
Locale locale = Locale.getDefault();
String s2 = s.toLowerCase(locale);
yourfanat
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 177
12.11.2014, 15:33  [ТС]     Как сделать поиск LIKE из БД не восприимчивым к регистру? #11
Можете поподробнее - где это преобразование делать в java?
У меня есть запрос к БД -
SQL
1
String SearchResult = "SELECT * FROM city AS t1, region AS t2 ON t1.region_number = t2._id WHERE t1.name LIKE '%' || ? || '%';";
На основе него я получаю Cursor, который и использую для вывода результата поиска.
на какой стадии делать преобразование?
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
12.11.2014, 15:55     Как сделать поиск LIKE из БД не восприимчивым к регистру? #12
yourfanat, на этапе создания (наполнения) БД. Дело в том, что SQLite не умеет преобразовывать в нижний регистр. Поэтому вам придётся делать дополнительные поля, в которые будете вставлять данные. Придётся делать не SQL-запрос, а циклом делать update с преобразованием полей.
yourfanat
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 177
12.11.2014, 15:58  [ТС]     Как сделать поиск LIKE из БД не восприимчивым к регистру? #13
Кашмар))) Нужно попробовать) Спасибо)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2014, 21:19     Как сделать поиск LIKE из БД не восприимчивым к регистру?
Еще ссылки по теме:

Android Как сделать переключение вкладок такое же как в WhatsApp?
Searchview закрыть поиск программно, также как закрывается кнопкой back Android
Поиск как в браузере Android
Как сделать FloatingActionsMenu Android
Как реализовать поиск по Listview? Android

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

Или воспользуйтесь поиском по форуму:
chizz
 Аватар для chizz
979 / 493 / 54
Регистрация: 19.03.2013
Сообщений: 3,059
Записей в блоге: 18
Завершенные тесты: 1
12.11.2014, 21:19     Как сделать поиск LIKE из БД не восприимчивым к регистру? #14
база данных и так в utf-8.

Так в том то и дело.

База то да. А при insert какой текст в неё пишется, в какой кодировке?
Yandex
Объявления
12.11.2014, 21:19     Как сделать поиск LIKE из БД не восприимчивым к регистру?
Ответ Создать тему
Опции темы

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