【发布时间】:2012-05-18 22:42:33
【问题描述】:
是否可以在SQLite 表中使用SQL 来替换部分字符串?
例如,我有一个表格,其中一个字段包含文件的路径。 是否可以替换部分字符串,例如
c:\afolder\afilename.bmp
变成
c:\anewfolder\afilename.bmp
?
【问题讨论】:
是否可以在SQLite 表中使用SQL 来替换部分字符串?
例如,我有一个表格,其中一个字段包含文件的路径。 是否可以替换部分字符串,例如
c:\afolder\afilename.bmp
变成
c:\anewfolder\afilename.bmp
?
【问题讨论】:
如果您只想在查询中执行此操作而不会产生持久后果:
SELECT fieldA, replace(field, 'C:\afolder\', 'C:\anewfolder\'), fieldB FROM table;
【讨论】:
@Andrew 答案部分正确。此处无需使用WHERE 子句:
C:\afolder 的字段才会受到影响,没有理由去检查它。太过分了。'C:\afolder\%' 将仅选择以 C:\afolder\ 开头的字段。如果你在字符串中有这个路径怎么办?所以正确的查询就是:
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\');
【讨论】:
您可以使用内置的replace() 函数在查询中执行字符串替换。
其他字符串操作函数(以及更多)在SQLite core functions list中有详细说明
以下内容应为您指明正确的方向。
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\' ) WHERE field LIKE 'C:\afolder\%';
【讨论】: