是否可以使用SQL
表中的SQLite
替换部分字符串?
例如,我有一个表,其中一个字段包含文件的路径。 是否可以替换部分字符串,例如
c:\afolder\afilename.bmp
变为
c:\anewfolder\afilename.bmp
答案 0 :(得分:191)
您可以使用内置的replace()
函数在查询中执行字符串替换。
以下内容应指向正确的方向。
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\' ) WHERE field LIKE 'C:\afolder\%';
答案 1 :(得分:28)
@Andrew回答是部分正确的。这里不需要使用WHERE
子句:
C:\afolder
的字段会受到影响,没有理由对其进行检查。这太过分了。'C:\afolder\%'
将仅选择以C:\afolder\
开头的字段。如果你在字符串里面有这个路径怎么办?所以正确的查询只是:
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\');
答案 2 :(得分:8)
如果您只想在查询中执行此操作而不会产生持久影响:
SELECT fieldA, replace(field, 'C:\afolder\', 'C:\anewfolder\'), fieldB FROM table;