2013-03-20 2 views
1

У меня есть куча ссылок на изображения в таблице как:MySQL значение обновления VARCHAR, используя старое значение плюс новую строку

data/fabrics/signature/signature1.jpg 
data/fabrics/signature/signature2.jpg 

И мне нужно пройти через стол и добавить дополнительную папку в пути изображения как:

data/group1/fabrics/signature/signature1.jpg 
data/group1/fabrics/signature/signature2.jpg 

есть ли способ сделать это с помощью всего запросов MySQL, или мне нужно использовать PHP для конкатенации строк, а затем обновить базу данных?

+0

Там уверенный. Вы посмотрели документацию mysql? Он содержит набор строковых функций, которые вы можете использовать для этого. – creinig

ответ

4

Вы можете использовать простую функцию замены, заменив начало строки на другое начало. Наверное, это самое простое решение, если замены настолько просты.

UPDATE tbl SET col=REPLACE(col, 'data/fabrics', 'data/group1/fabrics') WHERE xxx; 

Вы, возможно, придется выполнить некоторые из них, в зависимости от конкретных замен, необходимых, с различными WHERE пунктами.

+0

Прошу прощения? Что случилось с моим заявлением? Он добавит дополнительную папку на страницу изображения. Точные условия поиска/замены могут быть изменены, поэтому 'data /' может быть заменен на 'data/group1 /', если это действительно для всех из них. Способ, которым я его написал, демонстрирует, что вы можете помещать 'ткани' в' group1' и 'booze' в' group2' или аналогичные. Или я все еще что-то пропущу? –

+0

Я вообще не редактировал заявление. Я просто поменял шрифт 'WHERE' в тексте. –

+0

Спасибо, что сработало отлично. Я очень ценю ответ. – Brett

0
update table1 
set link=substring(link,1,charindex('/',link,1))+ 
     'group1'+substring(link,charindex('/',link,1),LEN(link)) 
where (your condition) 

SQL Fiddle

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