Est-il possible d’utiliser SQL
dans une table SQLite
pour remplacer une partie d’une chaîne?
Par exemple, j’ai une table où l’un des champs contient le chemin vers un fichier. Est-il possible de remplacer des parties de la chaîne de sorte que, par exemple
c:\afolder\afilename.bmp
devient
c:\anewfolder\afilename.bmp
?
Vous pouvez utiliser la fonction replace()
intégrée pour effectuer un remplacement de chaîne dans une requête.
D’autres fonctions de manipulation de chaînes (et plus) sont détaillées dans la liste des fonctions principales de SQLite
Ce qui suit devrait vous orienter dans la bonne direction.
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\' ) WHERE field LIKE 'C:\afolder\%';
La réponse @Andrew est partiellement correcte. Pas besoin d’utiliser la clause WHERE
ici:
C:\afolder
seront affectés de toute façon, aucune raison de le vérifier. C’est excessif 'C:\afolder\%'
choisira uniquement les champs commençant par C:\afolder\
only. Et si vous avez ce chemin dans la chaîne? Donc, la requête correcte est juste:
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\');
Et si vous voulez juste le faire dans une requête sans conséquences durables:
SELECT fieldA, replace(field, 'C:\afolder\', 'C:\anewfolder\'), fieldB FROM table;