有一些表包含数据库中的图片路径。我需要做的是替换所有现有的slasehes:\到那些:/ /每行。
接下来就是删除斜线前后每行中的空格。
例如,让我们举个例子:
\ PicsDB\Something 2015\ Somethingbla \Some thing other\
img34234.jpg
所以我们得到了:
<space><space>\<space>PicsDB\Something<space>2015\<space>Somethingbla
<space>\Some<space>thing<space>other\<space><space>img34234.jpg
应该改为:
/PicsDB/Something 2015/Some thing bla/Some thing other/img34234.jpg
P.S字符串中的注释空格必须保留。
答案 0 :(得分:2)
替换反斜杠:
UPDATE my_table SET path = replace(rtrim(ltrim(path)), '\', '/');
SQL的正则表达式并不容易。如果您知道可能需要删除多少个连续空格,可以尝试:
UPDATE my_table SET path = replace(path, ' /', '/');
UPDATE my_table SET path = replace(path, ' /', '/');
UPDATE my_table SET path = replace(path, ' /', '/');
UPDATE my_table SET path = replace(path, '/ ', '/');
UPDATE my_table SET path = replace(path, '/ ', '/');
UPDATE my_table SET path = replace(path, '/ ', '/');
如图所示的6个查询将在每个斜杠之前和之后删除最多7个空格。 如果有> = 4个空格,接下来的2个空格和下一个空格,则第一个删除4个空格。这在计算上效率稍低,但比在纯SQL代码中尝试使用正则表达式更容易。
答案 1 :(得分:2)