是否有可能在SQLite
表中使用SQL
替换部分字符串?SQLite - 替换部分字符串
例如,我有一个表格,其中一个字段包含文件的路径。 是否可以替换部分字符串,例如
c:\afolder\afilename.bmp
成为
c:\anewfolder\afilename.bmp
?
是否有可能在SQLite
表中使用SQL
替换部分字符串?SQLite - 替换部分字符串
例如,我有一个表格,其中一个字段包含文件的路径。 是否可以替换部分字符串,例如
c:\afolder\afilename.bmp
成为
c:\anewfolder\afilename.bmp
?
您可以使用内置的replace()
函数在查询中执行字符串替换。
其他字符串处理函数(及以上)都在SQLite core functions list
详述下面应该指向你在正确的方向。
UPDATE table SET field = replace(field, 'C:\afolder\', 'C:\anewfolder\') WHERE field LIKE 'C:\afolder\%';
如果你只想做一个查询,没有持久的后果:
SELECT fieldA, replace(field, 'C:\afolder\', 'C:\anewfolder\'), fieldB FROM table;
虽然WHERE子句是没有必要的,它确实给了一点安心。如果没有WHERE,SqlLite会告诉你表中的每一行都受到影响。通过使用WHERE,你只会得到你期望的十几行,而不是可能的数千行。 –
@WestonWedding我比较了有和没有WHERE子句的查询时间。没有哪里查询需要两次。 –