![]() |
|
Модераторы: skyboy |
![]()
|
|
| kilogram |
|
||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 19.3.2012 Репутация: 1 Всего: 0 |
Вот так пробую не выводит ничего вообще в результате:
и так не пашет:
и так не хочет:
и так:
Вот такая таблица, фото ниже. Нужно чтобы возвратило слова состоящие из 4 символов. Вот так работает, но я хотел бы регуляркой научиться такие фокусы
Как сделать такое же регуляркой? ![]() Это сообщение отредактировал(а) kilogram - 28.6.2012, 13:02 |
||||||||||
|
|||||||||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
Осмелюсь предположить что дело в мультибайте
>> Это сообщение отредактировал(а) Zloxa - 28.6.2012, 14:36 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Сумасшедший |
|
|||
|
Чилавек-Каропка ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 15.8.2004 Где: Москва Репутация: 4 Всего: 107 |
Кодировка?
-------------------- Однажды ты спросишь, а я отвечу: "Время ожидания специалиста - 10 минут". Ты бросишь трубку, так и не узнав, что Ваш звонок очень важен для нас! |
|||
|
||||
| kilogram |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 19.3.2012 Репутация: 1 Всего: 0 |
Показывает такое: ![]() |
|||
|
||||
| Сумасшедший |
|
|||
|
Чилавек-Каропка ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 15.8.2004 Где: Москва Репутация: 4 Всего: 107 |
Это сообщение отредактировал(а) Сумасшедший - 28.6.2012, 14:40 -------------------- Однажды ты спросишь, а я отвечу: "Время ожидания специалиста - 10 минут". Ты бросишь трубку, так и не узнав, что Ваш звонок очень важен для нас! |
|||
|
||||
| kilogram |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 19.3.2012 Репутация: 1 Всего: 0 |
А что это вы сделали что заработало? Причем здесь кодировка latin1 если не секрет из-за которой оно заработало?
|
|||
|
||||
| Сумасшедший |
|
|||
|
Чилавек-Каропка ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 15.8.2004 Где: Москва Репутация: 4 Всего: 107 |
Как выше процитировал Zloxa, REGEXP не особо хорошо работает с многобайтными символами (которые у Вас используются, судя по результатам вывода длины строки).
CONVERT в данном запросе приводит представление `name1` в каждой записи в однобайтную кодировку, и сравнивает с регулярным выражением, приведённым в такую же однобайтную кодировку. Т.е. с таким же успехом можно latin1 заменить на любую другую однобайтную кодировку. Например:
выполнится с точно таким же результатом. Это сообщение отредактировал(а) Сумасшедший - 28.6.2012, 16:40 -------------------- Однажды ты спросишь, а я отвечу: "Время ожидания специалиста - 10 минут". Ты бросишь трубку, так и не узнав, что Ваш звонок очень важен для нас! |
|||
|
||||
| kilogram |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 19.3.2012 Репутация: 1 Всего: 0 |
Спасибо, буду всегда использовать теперь CONVERT если что.
|
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
Если это нужно всегда, может имеет смысл задуматься о смене кодировки базы? (или таблицы, поля) Вопрос в зал : MySQL умеет создавать отдельные таблицы, поля в отличной от других кодировке? Это сообщение отредактировал(а) Zloxa - 28.6.2012, 16:54 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Сумасшедший |
|
||||
|
Чилавек-Каропка ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 15.8.2004 Где: Москва Репутация: 4 Всего: 107 |
Слишком ресурсоёмко при большом количестве данных. Если уж не следовать рекомендации Zloxa, то тогда целесообразнее сделать дополнительное поле с уже сконвертированными значениями и использовать его как ключ для поиска. Zloxa,
Это сообщение отредактировал(а) Сумасшедший - 28.6.2012, 17:31 -------------------- Однажды ты спросишь, а я отвечу: "Время ожидания специалиста - 10 минут". Ты бросишь трубку, так и не узнав, что Ваш звонок очень важен для нас! |
||||
|
|||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
Я точно не уверен. Мне кажется на конверсию чарсета будут уходить копейки ресурса, в сравнением с ресурсом, требуемым для регекспа. Если заботиться производительностью, регексп лучше вообще в сторону. Впрочем, как и like '___'. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Сумасшедший |
|
|||
|
Чилавек-Каропка ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 15.8.2004 Где: Москва Репутация: 4 Всего: 107 |
Бывает, что без регэкспов в запросах никак:( Особенно в адресах РФ, когда названия городов улиц вводятся вкривь и вкось, а КЛАДР по некоторым причинам не используется.
Для самоудовлетворения сделал тестик на миллионе записей по поиску слов, состоящих из 4-х символов, на машине, обслуживающей только мою тестовую базу. В таблице были три поля: test_id - id записи, utf8 - строка длиной 1..16 символов в utf8 и cp1251 - та же строка, что и в utf8, только сконвертированная в cp1251. Поиск с конвертацией поля utf8 ~0.75 sec Поиск по cp1251 ~0.52 sec Добавлено через 1 минуту и 17 секунд Но в целом ты прав - от этого стоит уходить быстро, решительно и приложив руки к нужному месту. -------------------- Однажды ты спросишь, а я отвечу: "Время ожидания специалиста - 10 минут". Ты бросишь трубку, так и не узнав, что Ваш звонок очень важен для нас! |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
хммм порядка 40%. Я ожидал 10-15% Добавлено через 14 секунд Спасибо за тест. Это было интересно -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| kilogram |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 19.3.2012 Репутация: 1 Всего: 0 |
То есть использовать вариант является не целесообразным? А какой тогда выход если нужно такое условие?
Кстати, попробовал так, что-то не работает:
|
||||
|
|||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
Человеческим же языком написано - на многобайтной кодировке - не предсказуемый результат. utf-8 - мультибайтная кодировка. Каждый символ может быть представлен от одного до четырех байт. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |