2014-10-20 2 views
1

У меня есть таблица базы данных (назовем ее MyTable). В этой базе данных есть столбец путей для файла с такими путями, как «C: /Users/me/test.txt». Я могу найти объекты таблицы с данным файлом, как это:MySQL - Как изменить часть элемента таблицы, сохранив ее часть

select * from MyTable where path = "C:/Users/me/test.txt"; 

Я также знаю, как получить все объекты, пути находятся в определенном каталоге, как это:

select * from MyTable where path regexp "^C:/Users/me/.*$"; 

У меня есть новый каталог что все файлы в тестовой папке были перемещены в, вызвали newFolder, и мне нужно написать команду для обновления путей в таблице базы данных. Например, если исходный путь объекта был сохранен в базе данных как «C: /Users/me/test.txt», мне нужно, чтобы новое значение было сохранено как «C: /Users/newFolder/test.txt». Я могу понять, как это сделать без включенного имени файла (если только путь присутствовал), но я не уверен, как сохранить имя файла при обновлении пути. Если кто-нибудь знает, как это сделать, я бы это понял. Благодаря!

ответ

2

Вы прочитали о REPLACE() function?

UPDATE MyTable 
SET path = REPLACE(path, 'C:/Users/me/', 'C:/Users/newFolder/'); 
+0

Должно быть, я пропустил это, спасибо! :) – thnkwthprtls

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