Возможно ли использовать SQL
в таблице SQLite
для замены части строки?
Например, у меня есть таблица, в которой одно из полей содержит путь к файлу. Можно ли заменить части строки так, чтобы, например,
c:\afolder\afilename.bmp
становится
c:\anewfolder\afilename.bmp
?
Вы можете использовать встроенную функцию replace()
для выполнения замены строки в запросе.
Другие функции манипуляции строками (и более) подробно описаны в списке основных функций SQLite
Следующее должно указывать на вас в правильном направлении.
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\' ) WHERE field LIKE 'C:\afolder\%';
@Andrew является частично правильным. Не нужно использовать предложение WHERE
здесь:
C:\afolder
, и никаких оснований для его проверки. Это чрезмерно.'C:\afolder\%'
будет выбирать только поля, начинающиеся только с C:\afolder\
. Что делать, если у вас есть этот путь внутри строки?Итак, правильный запрос:
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\');
И если вы просто хотите сделать это в запросе без длительных последствий:
SELECT fieldA, replace(field, 'C:\afolder\', 'C:\anewfolder\'), fieldB FROM table;