替换 table 列中的部分字符串
Replace part of string in table column
以 Remove part of string in table 为例,我想用不同的字符串更改数据库列中的部分字符串。
例如:
数据库说 E:\websites\nas\globe.png
, E:\websites\nas\apple.png
等等
我想让它说 \nas\globe.png
、\nas\apple.png
、
我只想替换的部分是 E:\websites\
而不是字符串的其余部分
我该怎么做?
到目前为止我有:
SELECT file_name,
REPLACE(file_name,'E:\websites\','\nas\')
FROM t_class;
并使用:
SELECT REPLACE('E:\websites\web\Class\Main_Image\','E:\websites\web\Class\Main_Image\','\nas\class_s\Main_Image\') "Changes"
FROM DUAL;
但再一次它不会改变O.o
在 Oracle 中,您可能需要在反斜杠上加倍:
SELECT file_name,
REPLACE(file_name,'E:\websites\', '\\nas\')
FROM t_class;
为了好玩,使用 regexp_replace
:
SQL> with tbl(filename) as (
2 select 'E:\websites\nas\globe.png' from dual
3 union
4 select 'E:\websites\nas\apple.png' from dual
5 )
6 select filename, regexp_replace(filename, 'E:\websites', '\') edited
7 from tbl;
FILENAME EDITED
------------------------- --------------------
E:\websites\nas\apple.png \nas\apple.png
E:\websites\nas\globe.png \nas\globe.png
SQL>
我在
找到了一个参考
通过执行以下操作:
UPDATE t_class SET file_name =
REPLACE
(file_name, 'E:\websites\web\Class\Main_Image\No_Image_Available.png', '\nas\class_s\Main_Image\No_Image_Available.png');
所以唯一的区别是 update
和 =
符号
以 Remove part of string in table 为例,我想用不同的字符串更改数据库列中的部分字符串。
例如:
数据库说 E:\websites\nas\globe.png
, E:\websites\nas\apple.png
等等
我想让它说 \nas\globe.png
、\nas\apple.png
、
我只想替换的部分是 E:\websites\
而不是字符串的其余部分
我该怎么做?
到目前为止我有:
SELECT file_name,
REPLACE(file_name,'E:\websites\','\nas\')
FROM t_class;
并使用:
SELECT REPLACE('E:\websites\web\Class\Main_Image\','E:\websites\web\Class\Main_Image\','\nas\class_s\Main_Image\') "Changes"
FROM DUAL;
但再一次它不会改变O.o
在 Oracle 中,您可能需要在反斜杠上加倍:
SELECT file_name,
REPLACE(file_name,'E:\websites\', '\\nas\')
FROM t_class;
为了好玩,使用 regexp_replace
:
SQL> with tbl(filename) as (
2 select 'E:\websites\nas\globe.png' from dual
3 union
4 select 'E:\websites\nas\apple.png' from dual
5 )
6 select filename, regexp_replace(filename, 'E:\websites', '\') edited
7 from tbl;
FILENAME EDITED
------------------------- --------------------
E:\websites\nas\apple.png \nas\apple.png
E:\websites\nas\globe.png \nas\globe.png
SQL>
我在
通过执行以下操作:
UPDATE t_class SET file_name =
REPLACE
(file_name, 'E:\websites\web\Class\Main_Image\No_Image_Available.png', '\nas\class_s\Main_Image\No_Image_Available.png');
所以唯一的区别是 update
和 =
符号