是否可以SQL
在SQLite
表格中使用来替换部分字符串?
例如,我有一个表,其中一个字段包含文件的路径。是否可以替换部分字符串,例如
c:\afolder\afilename.bmp
变成
c:\anewfolder\afilename.bmp
?
您可以使用内置replace()
函数在查询中执行字符串替换。
SQLite 核心函数列表中详细介绍了其他字符串操作函数(以及更多)
以下内容应为您指明正确的方向。
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\' ) WHERE field LIKE 'C:\afolder\%';
@Andrew的回答部分正确。此处无需使用WHERE
子句:
C:\afolder
会受到影响,没有理由检查它。太过分了。'C:\afolder\%'
将只选择以 only 开头的字段C:\afolder\
。如果你在字符串中有这个路径怎么办?所以正确的查询是:
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\');
如果您只想在查询中执行此操作而不会产生持久的后果:
SELECT fieldA, replace(field, 'C:\afolder\', 'C:\anewfolder\'), fieldB FROM table;