Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день!
Пожалуйста, подскажите SQL команду для замены вот таких данных, это только малая часть:
This property has been on Booking.com since Jul 21, 2011.
This property has been on Booking.com since Mar 7, 2012.
This property has been on Booking.com since Apr 2, 2005.
This property has been on Booking.com since Jun 24, 2009.
Отличие только в конце в датах.
Я так понимаю тут надо применять регулярное выражение.
Раньше пользовался такой командой:
UPDATE `index` SET c_18 = REPLACE(c_18, 'заменить что', 'на что');
Но т.к. в значениях есть отличия такая команда уже не подойдет.
Спасибо.
Неактивен
Регулярные выражения не помогут, т.к. в MySQL они не умеют выделять подстроку, а могут только проверить, соответствие строки заданному выражению.
Выход: или писать монстра с использованием строковых функций (если получится), или делать замену во внешнем приложении.
Неактивен
А что именно и на что в приведенных строках Вы хотите заменить? Приведите примеры.
Вообще у mysql скудно с регулярными выражениями (.
Так что в зависимости от того, что и на что Вы хотите заменять - либо делать это на клиенте, либо как-то исхитриться скомбинировать строковые функции либо хранимую процедуру писать.
Неактивен
По идее я даже хочу не заменить подобные данные чем то, а просто их удалить.
В столбцах данные выглядят так
и их надо удалять, оставив только те которые НЕ ВЫДЕЛЕНЫ красным.
Неактивен
Можно попробовать создать конструкцию, которая с помощью locate найдет номер в строке, с которого начинается "This property has been..", далее удалить с помощью substr .
Но потестируйте с большим, т/с чувством )), конструкция не очень надежная.
Неактивен