2013-04-04 2 views
0

У меня есть проблема, что почти так же, как это:MySQL Query, чтобы удалить часть URL в базе данных

http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/Q_27928324.html

Я не о том, чтобы дать информацию о моей кредитной карты на веб-сайт, чтобы найти ответ на Эта проблема.

В моей таблице с именем 'product' есть около 7000 строк в столбце с именем 'image' в моей базе данных, каждый из которых имеет пути к файлам, заканчивающимся на .jpeg. Некоторые имена изображений - 234234_15.jpeg, некоторые - wdcaas_ad_3_15_mmm.jpeg и т. Д. Но структура файла отличается для каждого изображения.

Мне нужно сделать скрипт для обновления всех строк и оставить только имя изображения. Предпочтительно, мне в конечном итоге захочется заменить все файловые структуры на папку/данные /, а также пример /data/imagename.jpeg

Я нашел это Remove part of string including a specific character from a string using MySQL, и это может помочь? Я не уверен, как его использовать.

помощь!

+0

в плане обмена специалистами, если вы прокрутите вниз до нижней части страницы, вы увидите всю переписку по этому вопросу. Вы можете пропустить рекламу и, конечно же, вам не придется платить. –

ответ

0

Вы можете сделать это с помощью reverse. , ,

select reverse(substring_index(reverse(image), '/', 1)) 

Если вы хотите действительно обновить значения. , ,

update t 
    set image = reverse(substring_index(reverse(image), '/', 1)) 

Чтобы добавить «данные /» перед, используйте CONCAT:

update t 
    set image = concat('data/', reverse(substring_index(reverse(image), '/', 1))) 
+0

Значит, это изменит все строки в столбце «изображение»? – Chris

+0

@ Chris. , , Вторая версия обновит значения. Первое возвращает имя изображения, чтобы вы могли видеть, работает ли оно. –

+0

он работал отлично. Теперь мне нужно добавить 'data /' infront каждой строки. Думаю, concat выполнит эту работу? – Chris

Смежные вопросы