在 SQLite
表中是否可以使用 SQL
来替换字符串的一部分呢?
例如,假设我有一个表格,其中一个字段保存了文件的路径。 是否可能替换字符串的某些部分,例如:
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\%'
只会选择以 C:\afolder\
开头的字段。如果您的字符串中包含此路径怎么办?因此,正确的查询只需:
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\');
如果你只想在查询中执行它,而不带来持久的后果:
SELECT fieldA, replace(field, 'C:\afolder\', 'C:\anewfolder\'), fieldB FROM table;