¿Es posible usar SQL
en una tabla SQLite
para replace parte de una cadena?
Por ejemplo, tengo una tabla donde uno de los campos contiene la ruta a un file. ¿Es posible replace partes de la string para que, por ejemplo,
c:\afolder\afilename.bmp
se convierte
c:\anewfolder\afilename.bmp
?
Puede usar la function incorporada en replace()
para realizar una cadena de reemploop en una consulta.
Otras funciones de manipulación de cadenas (y más) se detallan en la list de funciones básicas de SQLite
Lo siguiente debe señalarle en la dirección correcta.
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\' ) WHERE field LIKE 'C:\afolder\%';
La respuesta de @Andrew es parcialmente correcta. No es necesario usar la cláusula WHERE
aquí:
C:\afolder
se verán afectados de todos modos, no hay razón para verificarlo. Es excesivo 'C:\afolder\%'
solo los campos que comiencen con C:\afolder\
only. ¿Qué pasa si tienes este path dentro de una string? Entonces, la consulta correcta es justa:
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\');
Y si solo quieres hacerlo en una consulta sin consecuencias duraderas:
SELECT fieldA, replace(field, 'C:\afolder\', 'C:\anewfolder\'), fieldB FROM table;