mySQL更新表向列添加字符串

标签 mysql string add

我在 mySQL 中有一个表,想要更新包含目录的特定列。 应扩展目录结构,并应使用子目录更新相应的列。有很多行要更新,所以我寻找一个方便的脚本来完成。

例子:

c1 列包含目录

/startpoint/dir_a/
/startpoint/dir_a/subdir_1/
/startpoint/dir_a/subdir_1/subsubdir_1/
/startpoint/dir_a/subdir_1/subsubdir_2/
/startpoint/dir_a/subdir_1/subsubdir_3/
/startpoint/dir_a/subdir_2/
/startpoint/dir_a/subdir_3/

所以我需要将目录从起点移动到起点/系统。

这应该在脚本之后:

/startpoint/system/dir_a/
/startpoint/system/dir_a/subdir_1/
/startpoint/system/dir_a/subdir_1/subsubdir_1/
/startpoint/system/dir_a/subdir_1/subsubdir_2/
/startpoint/system/dir_a/subdir_1/subsubdir_3/
/startpoint/system/dir_a/subdir_2/
/startpoint/system/dir_a/subdir_3/

我的(也许是愚蠢的)更新没有按预期工作:

update table1 set dir=/startpoint/system/||substr(dir,12) where dir like '/startpoint/dir_a/%'

那么专家有什么想法可以通过更具体的 sql 更新来做到这一点吗?

谢谢。

最佳答案

你可以使用

UPDATE table SET dir = REPLACE(dir,'/startpoint/dir_a/','/startpoint/system/dir_a/'
WHERE dir LIKE '/startpoint/dir_a/%'

但要小心,因为它会替换所有出现的 '/startpoint/dir_a/' - 如果你的路径类似于 '/startpoint/dir_a/random_dir/startpoint/dir_a/' 它会把它弄乱。

关于mySQL更新表向列添加字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15647765/

相关文章:

php - 从 Windows 到 MAC OS/WAMP 到 MAMP 的更改

不使用 sprintf() 将 float 转换为字符串

c# - 从 C# 应用程序中添加 reg 并从 cmd 窗口中查询值后出现不同值的原因是什么?

android - 如何在android中向自定义 ListView 添加 View ?

php - 如何使用一个布局页面制作多个页面? PHP

mysql - 用常量值更新表

mysql - mysql中每个group_concated项是否有字符限制?

c++ - 将正斜杠添加到字符串

c - 为什么要在字符串数组中添加空字符?

android - 添加新联系人(36 项)