Requête MySQL pour remplacer les espaces dans une colonne par des traits de soulignement
Question
J'ai une table de base de données MySQL "photos" avec une colonne "nom de fichier". Je dois remplacer les espaces dans les valeurs de colonne du nom de fichier par des traits de soulignement. Est-ce possible avec une requête unique / multiple? Si oui comment?
La solution
Vous pouvez utiliser le REPLACE
fonction:
REPLACE (str, from_str, to_str)
Renvoie la chaîne
str
avec tous occurrences de la chaînefrom_str
remplacé par la chaîneto_str
.
REPLACE ()
est sensible à la casse correspondance lors de la recherche defrom_str
.
Ainsi, pour remplacer toutes les occurrences d'un caractère par un autre dans toutes les lignes d'un tableau, procédez comme suit:
update photos set filename = replace(filename, ' ', '_');
C'est-à-dire que vous recherchez '' dans la colonne nom_fichier
et utilisez '_' à la place; et remettez le résultat dans nom de fichier
.
Autres conseils
update photos set filename = replace(filename,' ', '_');