Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / вырезать все лишние символы / 6 сообщений из 6, страница 1 из 1
24.09.2014, 16:31:48
    #38756400
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вырезать все лишние символы
Всем привет.
Подскажите, кто знает, вообще возможно ли в mysql вырезать из колонки все лишние символы и сохранить результат в другую колонку таблицы?

Что-то в голову ничего не приходит, да и не нагугливается ничего.
...
Рейтинг: 0 / 0
24.09.2014, 16:42:09
    #38756414
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вырезать все лишние символы
ПрограмёрВсем привет.
Подскажите, кто знает, вообще возможно ли в mysql вырезать из колонки все лишние символы и сохранить результат в другую колонку таблицы?

Что-то в голову ничего не приходит, да и не нагугливается ничего.

Это очень просто!!

Код: sql
1.
update t set titQry = replace(replace(replace(tit, unhex(0x00), ''), unhex(0x11), '') unhex(0x15), '')



и так для каждого символа, который хочется удалить

PS. мы в наших проектах подобную нормализацию проводим отдельной обработкой и нормализуем на клиенте, потому что нормализационная логика бывает часто очень витьеватая...
...
Рейтинг: 0 / 0
24.09.2014, 16:52:06
    #38756425
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вырезать все лишние символы
LumixПрограмёрВсем привет.
Подскажите, кто знает, вообще возможно ли в mysql вырезать из колонки все лишние символы и сохранить результат в другую колонку таблицы?

Что-то в голову ничего не приходит, да и не нагугливается ничего.

Это очень просто!!

Код: sql
1.
update t set titQry = replace(replace(replace(tit, unhex(0x00), ''), unhex(0x11), '') unhex(0x15), '')



и так для каждого символа, который хочется удалить

PS. мы в наших проектах подобную нормализацию проводим отдельной обработкой и нормализуем на клиенте, потому что нормализационная логика бывает часто очень витьеватая...

насчёт replace(replace... это не подходит. Даже если не брать во внимание, что это utf-8 в которой очень дофига символов... Даже если начинать вырезать все не буквенные и не цифирные символы, но только те, что можно ввести с клавиатуры, это уже будет несколько десятков символов... а это дофига для такого метода :)

На клиенте нормализировать не могу, так как у меня уже готовы все механизмы, просто как обычно в тз были внесены поправки... В общем через LOAD DATA INFILE грузятся данные в таблицы, а теперь мне нужен ещё один столбик с кодом запчасти, только сокращённый до букв и цифр. Обрабатывать файлы до загрузки невозможно, так как в теории они могут лежать на другом сервере. Грузить их каждый раз на свой сервер и там менять - это тоже не быстро, так как файлов может быть 100-200 по несколько десятков тысяч позиций каждый...

Вот и сижу... мозгую.
...
Рейтинг: 0 / 0
24.09.2014, 16:59:34
    #38756435
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вырезать все лишние символы
ПрограмёрНа клиенте нормализировать не могу, так как у меня уже готовы все механизмы, просто как обычно в тз были внесены поправки...

Под нормализовать на клиенте это означает запустить простой тупой скрипт, который возьмет по одной записи, нормализует и сохранит в другое поле. Такой скриптик может написать даже программист-стажер.
...
Рейтинг: 0 / 0
24.09.2014, 18:01:17
    #38756547
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вырезать все лишние символы
LumixПрограмёрНа клиенте нормализировать не могу, так как у меня уже готовы все механизмы, просто как обычно в тз были внесены поправки...

Под нормализовать на клиенте это означает запустить простой тупой скрипт, который возьмет по одной записи, нормализует и сохранит в другое поле. Такой скриптик может написать даже программист-стажер.

Такой скрипт, который напишет любой программист-стажёр, я оставлю на крайний случай, так как каждый раз при апдейте базы выполнять миллионы запросов - это кагбы не круто (учитывая, что если mysql что-то подобное позволяется, то я могу сделать это одним запросом, который внутри сервера отработает в разы быстрее и стабильнее).
...
Рейтинг: 0 / 0
24.09.2014, 18:48:55
    #38756605
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вырезать все лишние символы
Програмёртак как каждый раз при апдейте базы выполнять миллионы запросов - это кагбы не круто

1. Скрипт о котором я говорил используется всего один раз для апдейта уже существующих записей
2. Так же он используется для обслуживания базы, когда возникает необходимость нажать кнопку Навести порядок . У нас по этой кнопке происходит очень-очень много всяких сложных проверок и такая операция может выполняться полчаса, но ведь и используется она либо в случае аварии, либо для планового причесывания
3. Что касается каждый раз при апдейте, то производите нормализацию данных на клиенте перед апдейтом и нормализуйте не миллион данных, а только те, которые апдейтите
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / вырезать все лишние символы / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]