111

是否可以SQLSQLite表格中使用来替换部分字符串?

例如,我有一个表,其中一个字段包含文件的路径。是否可以替换部分字符串,例如

c:\afolder\afilename.bmp

变成

c:\anewfolder\afilename.bmp

?

4

3 回答 3

217

您可以使用内置replace()函数在查询中执行字符串替换。

SQLite 核心函数列表中详细介绍了其他字符串操作函数(以及更多)

以下内容应为您指明正确的方向。

UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\' ) WHERE field LIKE 'C:\afolder\%';

于 2012-05-29T22:55:06.163 回答
30

@Andrew的回答部分正确。此处无需使用WHERE子句:

  1. 无论如何,只有包含的字段C:\afolder会受到影响,没有理由检查它。太过分了。
  2. 'C:\afolder\%'将只选择以 only 开头的字段C:\afolder\。如果你在字符串中有这个路径怎么办?

所以正确的查询是:

UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\');
于 2015-12-16T14:44:46.757 回答
10

如果您只想在查询中执行此操作而不会产生持久的后果:

SELECT fieldA, replace(field, 'C:\afolder\', 'C:\anewfolder\'), fieldB FROM table;
于 2016-01-25T15:59:23.517 回答