Supprimer une partie d'un champ

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
A voir également:

6 réponses

cyril1982 Messages postés 110 Date d'inscription   Statut Membre Dernière intervention   12
 
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
1
romu
 
Merci beaucoup de ta réponse.

Effectivement c'est la bonne piste.
Par contre, je ne comprends pas le +3
0
cyril1982 Messages postés 110 Date d'inscription   Statut Membre Dernière intervention   12
 
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.
0
romu
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cyril1982 Messages postés 110 Date d'inscription   Statut Membre Dernière intervention   12
 
De rien.

Je ne connais pas wordpress !!
0
romu
 
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 ;)
0