MySQL - 如何在保持部分表元素相同的同时更改表元素的一部分

时间:2014-10-20 18:39:28

标签: mysql regex

我有一个数据库表(我们称之为MyTable)。在此数据库中,有一列文件路径,其路径如“C:/Users/me/test.txt”。我可以找到具有给定文件的表对象:

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”。我可以弄清楚如何在没有包含文件名的情况下执行此操作(如果仅存在路径),但我不确定如何在更新路径时保留文件名。如果有人知道如何做到这一点,我真的很感激。谢谢!

1 个答案:

答案 0 :(得分:2)

您是否阅读了REPLACE() function

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