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 d'accès à un fichier. Est-il possible de remplacer des parties de la chaîne de telle 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 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\%';
@ Andrew la réponse est partiellement correcte. Pas besoin d'utiliser la clause WHERE
ici:
C:\afolder
sera affecté de toute façon, aucune raison de le vérifier. C'est excessif.'C:\afolder\%'
choisira uniquement les champs commençant par C:\afolder\
seulement. Et si vous avez ce chemin dans string?Donc, la requête correcte est juste:
UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\');
Et si vous voulez simplement le faire dans une requête sans conséquences durables:
SELECT fieldA, replace(field, 'C:\afolder\', 'C:\anewfolder\'), fieldB FROM table;