|
|
|
| Есть MySQL 4. В нем нет таких штук как локаль или кодировка. Данные хранятся и возвращаются так, как туда кладутся. Я кладу их в utf-8. В нем же вытаскиваю и вывожу. Короче, все в юникоде.
Задача: в базе есть поля с русскими значениями. Пользователь вводит часть слова или слово целиком. Оно эскейпится, обрамляется %% и подставляется в запрос вида:
SELECT * FROM `table` WHERE LOWER(`name`) LIKE LOWER($word);
|
С латиницей работает на ура. А с кириллицей беда. Дело в том, что LOWER($word) делает все верно, а вот LOWER(`name`) оставляет все как есть, либо немного бъет кодировку слова.
Вопрос: как выполнить регистронезависимый поиск при данных условиях средствами MySQL? | |
|
|
|
|
|
|
|
для: SHAman
(13.01.2011 в 13:38)
| | Хм... у четвертой версии было множество проблем, особенно, с кодировками, собственно почему и появилась версия 4.1 с её революционными изменениями в этой области. Некоторые версии постарее вообще неправильно сортировали кирилицу. А нет никакой возможности перейти на более высокую версию MySQL? Собственно ветка 4.0.x уже не поддерживается производителями. | |
|
|
|
|
|
|
|
для: cheops
(13.01.2011 в 14:10)
| | Версия MySQL 4.0.18.
Ну я с хостером поговорю. У них на новых хостингах уже пятерка везде. И пхпмайадмин обновили. А на старых хостингах вот такая петрушка. Хочется конечно пятерку. | |
|
|
|