Supprimer une partie d'un champ
romu
-
romu -
romu -
Bonjour,
Je souhaite intervenir sur une liste de champs afin d'en supprimer une partie.
Ils sont tous construis de la même manière :
NOM DE L'AUTEUR - TITRE DE L'ARTICLE
Je souhaite effacer la première partie (NOM DE L'AUTEUR)
afin qu'il ne reste que TITRE DE L'ARTICLE
Il faudrait que je puisse supprimer ce qui apparaît avant le tiret, ainsi que le tiret et l'espace qui succède le tiret.
Avez-vous une idée de requête pour effectuer cette action ?
Merci d'avance
Je souhaite intervenir sur une liste de champs afin d'en supprimer une partie.
Ils sont tous construis de la même manière :
NOM DE L'AUTEUR - TITRE DE L'ARTICLE
Je souhaite effacer la première partie (NOM DE L'AUTEUR)
afin qu'il ne reste que TITRE DE L'ARTICLE
Il faudrait que je puisse supprimer ce qui apparaît avant le tiret, ainsi que le tiret et l'espace qui succède le tiret.
Avez-vous une idée de requête pour effectuer cette action ?
Merci d'avance
6 réponses
-
Bonjour,
Tu peux utiliser les fonctions substr et locate, ta requête devrait ressembler à ça :
update ma_table set mon_champ = SUBSTR(mon_champ, LOCATE(' - ', mon_champ) + 3)
Je ne suis pas sûr du +3.
Pou plus de précision, tu peux voir la doc des fonctions qui manipulent des string :
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html -
Merci beaucoup de ta réponse.
Effectivement c'est la bonne piste.
Par contre, je ne comprends pas le +3 -
Le locate va te donner la position de la sous-chaîne " - ", mais comme tu ne veux pas garder celle-ci on fait un + 3 ( 3 = longueur de " - ") afin de commencer le substr au niveau du titre de l'article.
-
Super, ça fonctionne.
C'est un site wordpress.
Voici ma requete :
update wpp_posts set post_title = SUBSTR(post_title, LOCATE(' - ', post_title) + 3)
Par contre, ça ne doit impacter que les post et non les pages
donc il faut que post_type=post
Tu as une idée de comment l'intégrer ?
Merci beaucoup Cyril -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Je pense que la bonne requête est celle-ci :
update wpp_posts set post_title = SUBSTR(post_title, LOCATE(' - ', post_title) + 3) where post_type="post"
Encore merci pour ton aide ;)