SQLite – replacestring的一部分

是否有可能在SQLite表中使用SQL来replace部分string?

例如,我有一个表格,其中一个字段包含文件的path。 是否有可能取代部分string,例如

 c:\afolder\afilename.bmp 

 c:\anewfolder\afilename.bmp 

您可以使用内置的replace()函数在查询中执行stringreplace。

其他string操作函数(以及更多)在SQLite核心函数列表中详细介绍

以下应该指出你在正确的方向。

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

@Andrew的答案是部分正确的。 这里不需要使用WHERE子句:

  1. 只有包含C:\afolder字段会受到影响,没有理由检查它。 太过分了
  2. 'C:\afolder\%'将仅select仅以C:\afolder\开头的字段。 如果你有这个path内的string呢?

所以正确的查询只是:

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

如果你只是想在一个没有持久后果的查询中做到这一点:

 SELECT fieldA, replace(field, 'C:\afolder\', 'C:\anewfolder\'), fieldB FROM table;