Список форумов Шадринский форум -> Программирование -> Общие вопросы программирования -> трабла регулярных выражений в MySQL
Начать новую тему   Ответить на тему   вывод темы на печать

трабла регулярных выражений в MySQL

Автор
Сообщение
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2008.05.26 14:18.06
Ответить с цитатой
Пишем
SELECT "я" regexp "[ф]"

В ответ должны получить 0.
Вместо этого получаем 1.

Проблема возникает при клиентской кодировке utf8.
При работе с таблицами проблема та-же (т.е. возвращает результатов больше, чем должно), если кодировка столбцов - utf8
Проверено на mysql 5.0.41 и 5.0.22

Вопрос - как с этим бороться?
Вариант с откатом на однобайтовую кодировку особо не прельщает.

Добавлено спустя 31 минуту 3 секунды:

Блин, только-что прочитал:

Warning
The REGEXP and RLIKE operators work in byte-wise fashion, so they are not multi-byte safe and may produce unexpected results with multi-byte character sets. In addition, these operators compare characters by their byte values and accented characters may not compare as equal even if a given collation treats them as equal.

Что-же они так тормозят-то? В перле, php уже давно работает ...

Добавлено спустя 1 час 30 минут 48 секунд:

Сам с собою веду беседу ...
Вообщем, частное решение проблемы я нашел, но уж здорово костыльное. Например:
SELECT convert("я" using cp1251) regexp convert("[ф]" using cp1251)

Жуткий откат в древность, конечно, но пока модуль регулярки не доделают, придется пользоваться... Или на postgresql уходить ...
Посмотреть профиль Отправить личное сообщение
Страница 1 из 1
Начать новую тему   Ответить на тему   вывод темы на печать
Показать сообщения:   
Список форумов Шадринский форум -> Программирование -> Общие вопросы программирования -> трабла регулярных выражений в MySQL

 
Перейти: 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы