Как в MySQL заставить различать Е и Ё ?

JawsIk

Новичок
Как в MySQL заставить различать Е и Ё ?

Народ спасайте! Вобщем проблема в чём. Сделал я проект под заказ. Студент богатенький заказал проект на дипломную работу. Работа с антонимами (словами противоположными друг другу) и синонимами.

В общем я сделал. Всё мы с ним стали заполнять (набивать примеры) и проблема выявилась на буквах Е и Ё. Грёбаный UTF8 или MySQL, я хз, кого винить, при поиске, ну к примеру:

SELECT `word` FROM `ant_words` WHERE `word`LIKE '%лё%';

выдает не только слова содержащие в себе "лЁ":

лётчик
плёнка
плёвое
циплёнок
клён

но и все содержащие в себе "лЕ"

плен
нетленный
атлет
амулет
...

Я делал проект месяц, студент упёрся рогом и говорит, фуфло. Говорит "У меня лингвистический факультет и всё должно быть по правила русского языка". Говорит мол не нравиться. Исправляй.

Я не знаю что делать. Народ спасайте!

p.s.
кодировка UTF8, MySQL 5.0.45, PHP 5 . Как заставить мускул правильно искать? Помогите!!!
p.s.2.
сравнение было utf8_general_ci , поменял во всех таблицах и в самой базе на utf8_unicode_ci . Эффекта не дало, как считало буквы Е и Ё одинаковыми, так и продолжает.
 

JawsIk

Новичок
и что делать? Неужели без cp1251 никак для UTF8 не доказать самодостаточности буквы Ё?
 

svetasmirnova

маленький монстрик
JawsIk
мой ответ содержит второе волшебное слово: binary. utf8_bin например.

А чем cp1251 для колонки не угодил кстати? Или студент мультилингвист?
 

JawsIk

Новичок
странно, переключил везде на utf8_bin, но ничего не изменилось, по прежнему считает при поиске е и ё одинаковыми буквами, а по поводу cp1251, это же скрипт придётся переделывать, он ведь по utf8 заточен.
 

vovanium

Новичок
У колонок своя кодировка, тебе в принципе достаточно было поменять кодировку, точнее сравнение только у колонки word. Зайди в структуру таблицы, редактирование поля word, и там поставь сравнение utf8_bin
 

vovanium

Новичок
zerkms
и забудь про регистронезависимость
а зачем она ему там нужна? там по опредению все слова в одном регистре.
а вот для всей базы такое сравнение не стоит ставить
 

zerkms

TDD infected
Команда форума
vovanium
а завтра в этой табле появятся имена собственные и аббревиатуры :) и придётся искать костыль на костыль.
 

JawsIk

Новичок
Автор оригинала: vovanium
У колонок своя кодировка, тебе в принципе достаточно было поменять кодировку, точнее сравнение только у колонки word. Зайди в структуру таблицы, редактирование поля word, и там поставь сравнение utf8_bin
хух, спасибо! Выручил, вот видишь, оказывается, я ни там менял. Всё работает. Поставил вот именно по этому совету именно у колонки word и всё заработало.

там у меня имён собственных не будет, по крайней мере такой задачи не стояло, а так все слова там в виде "с маленькой буквы", поэтому всё заработало. Вы меня просто спасли!!!
 

Mols

Новичок
Если я не ошибаюсь МуСьКе можно прямо в запросе указать какой коллатион юзать))) Так что можно сделать для пользюка возможность выбора считать е=ё или нет))) Ну и во втором случае ещё и регистронезависимость будет.(А с мажора денег за это ещё взять))))
 

JawsIk

Новичок
А если и в правду не ошибаешься, подскажи как, мне бы такой вариант будет достаточно удобен.
 

vovanium

Новичок
мне бы такой вариант будет достаточно удобен.
Не особо он удобен, так тебе придется в скрипте менять сравнение постоянно, лучше один раз прописать для ячейки и всё
 
Сверху