Rechercher / Remplacer dans une base MySQL

Il existe plusieurs méthodes permettant de rechercher / remplacer du texte au sein d’une base de données MySQL comme vous le feriez avec n’importe quel éditeur de texte évolué. Une méthode simple se base sur la fonction replace de MySQL et sur une requête de mise à jour.

Pour réaliser cette requête, vous devrez impérativement indiquer la table et le champ à utiliser pour effectuer la recherche puis le remplacement d’informations.

Enfin, veuillez noter que cette fonction est sensible à la casse, voici la requête à utiliser :

UPDATE `la_table` SET `le_champ` = replace(`le_champ`, 'texte a rechercher', 'texte à remplacer');

Remplacement de texte en masse dans des articles WordPress

Exemple concret : voici une requête SQL permettant de rechercher et de remplacer en masse du texte dans tous les articles d’une base WordPress.
Cette requête SQL est à exécuter via le bouton « SQL » de PhpMyAdmin ou bien directement via l’invite de commande de votre serveur MySQL :

UPDATE `wp_posts` SET `post_content` = replace( `post_content`, 'texte a rechercher', 'texte à remplacer');

Rechercher un nom de champ dans un base de données

Sachez qu’il est également possible de dans un base de données MySQL.
Cette requête SQL peut être utile si vous travaillez sur une grosse base de données par exemple et que vous essayez de localiser un champ d’une table à partir du nom du champ.

Personnellement je m’en sert pour renommer les champs étant des noms réservés par Doctrine lors d’une introspection du framework Symfony.

Imaginons par exemple que nous recherchons toutes les tables possédant un champ nommé « last_modified » dans la base de données « introspection ». La requête SQL se présente alors comme suit :

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%last_modified%'
AND TABLE_SCHEMA = 'introspection'

D’une manière générale, apprendre à utiliser les requêtes sur INFORMATION_SCHEMA peut se révéler très utile !

  1. tetef says:

    Salut,

    Y a t’il un gain en performance par rapport à une requête de ce type :
    UPDATE table SET champ = ‘texte de remplacement’ WHERE champ LIKE ‘%texte à remplacer%’

  2. tetef says:

    Pardon j’ai dit une bêtise, ma requete écraserai tout le contenu du champ ou le texte est trouvé.
    :p

  3. Laurent B says:

    Merci beaucoup pour cette aide précieuse !

  4. JohanY says:

    Merci pour cette requête ! J’ai pu remplacer tous les liens des vidéos YouTube en http ou lieu de https dans de vieux articles WordPress !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nos partenaires

PrestaShop

PrestaShop nous fait confiance en nous délivrant la certification Expert qui démontre notre expertise concernant leur logiciel e-commerce. Nous avons également obtenu deux certifications officielles PrestaShop Fullstack Developer.

PayPlug

PayPlug est la solution de paiement française qui simplifie le paiement pour l’ensemble des TPE et PME de l'e-commerce, aussi bien en ligne qu’en magasin.

Klaviyo

Klaviyo, leader mondial du marketing automation, propose une solution complète qui s'interface avec vos canaux de vente.