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
子句:
- 只有包含
C:\afolder
字段会受到影响,没有理由检查它。 太过分了 -
'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;