web-dev-qa-db-fra.com

Comment mettre à jour une base de données SQLITE avec une recherche et remplacer la requête?

Ma connaissance SQL est très limitée, spécialement sur SQLite, bien que je pense que ce sera une sorte de requête générique ... ou peut-être pas à cause de la recherche et de remplacer ...

J'ai cette base de données musicale dans SQLite qui dispose de divers champs, mais les importants ici sont les "Media_Item_ID" et "content_url".

Voici un exemple de "content_url":

file:///c:/users/nazgulled/music/band%20albums/devildriver/%5b2003%5d%20devildriver/08%20-%20what%20does%20it%20take%20(to%20be%20a%20man).mp3

Je cherche une requête qui recherchera des entrées comme celles, où "content_url" suit ce modèle et le remplacera (le "content_url") avec quelque chose d'autre.

Par exemple, un "content_url" générique peut être ceci:

file:///c:/users/nazgulled/music/band%20albums/BAND_NAME/ALBUM_NAME/SONG_NAME.mp3

Et je veux remplacer toutes ces entrées avec:

file:///c:/users/nazgulled/music/bands/studio%20albums/BAND_NAME/ALBUM_NAME/SONG_NAME.mp3

Comment puis-je le faire dans une requête?

P.S: J'utilise Firefox SQLite Manager (Impossible de trouver une alternative meilleure et gratuite pour Windows).

26
Ricardo Amaral

Vous recherchez probablement la fonction replace.

Par exemple,

update table_name set 
  content_url = replace(content_url, 'band%20albums', 'bands/studio%20albums')
where
  content_url like '%nazgulled/music/band_20albums/%';

Plus de documentation à http://sqlite.org/lang_corefunc.html

50
laalto