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

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

Войти
Регистрация
Восстановить пароль
 
yourfanat
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 177
#1

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

24.10.2014, 16:04. Просмотров 566. Ответов 13
Метки нет (Все метки)

Сам запрос вот -
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 Как сделать переключение вкладок такое же как в WhatsApp?
Android Как сделать просмотр содержимого в программе, как в браузере
Поиск как в браузере Android
Delphi БД Как сделать SQL запрос не чувствительный к регистру букв, и еще один вопросов.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
chizz
979 / 493 / 54
Регистрация: 19.03.2013
Сообщений: 3,079
Записей в блоге: 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
979 / 493 / 54
Регистрация: 19.03.2013
Сообщений: 3,079
Записей в блоге: 18
Завершенные тесты: 1
24.10.2014, 16:24     Как сделать поиск LIKE из БД не восприимчивым к регистру? #4
yourfanat, вот в этом то и жопка

http://androidforums.ru/topic/1423-s...2%D1%80%D1%83/
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
24.10.2014, 17:31     Как сделать поиск LIKE из БД не восприимчивым к регистру? #5
yourfanat, chizz, сделайте ещё колонку одну, назовите ещё namelc (name lower case сокращённо), записывайте туда всегда toLowerCase() и ищите по этому полю в lower case.
chizz
979 / 493 / 54
Регистрация: 19.03.2013
Сообщений: 3,079
Записей в блоге: 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
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 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
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
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
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
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 из БД не восприимчивым к регистру?
Еще ссылки по теме:
PHP БД Поиск чувствительный к регистру
PHP БД Поиск чувствителен к регистру
SQL Server Поиск в таблице чувсвительный к регистру.
Поиск подстроки, нечувствительный к регистру C++ Builder
Запрос к регистру накопления и регистру сведенй 1С 1C 8.x

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

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

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

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

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