Partage
  • Partager sur Facebook
  • Partager sur Twitter

SQL supprimer des caractères après un ;

Un peu d'aide svp

    29 mars 2024 à 13:57:09

    Bonjour, 

    il existe sur ce forum un post parlant de ce sujet mais je n'ai pas réussi à utiliser la solution proposée ... le post étant ancien, je n'ai pas voulu le déterrer.

    j'ai besoin dans phpmyadmin de pourvoir supprimer des caractères après un point virgule.

    en gros que dans ma colonne A : 

    "maphrase;cequejeveux;supprimer" devienne "maphrase" sans ; sans rien après ce ; qui peut parfois apparaître plusieurs fois (quoiqu'il arrive j'ai besoin de ce qui est avant le premier point virgule, le reste saute)

    merci d'avance

    T.

    • Partager sur Facebook
    • Partager sur Twitter
      3 avril 2024 à 17:38:24

      ça aurait été bien de mettre au moins le lien de l'ancien sujet, ou de remettre la solution que tu as testé.

      Sinon, c'est une requête à base de SUBSTRING/SUBSTR et de LOCATE/INSTR

      Quelque chose comme ça va t'extraire le 1er mot

      SELECT SUBSTR("maphrase;cequejeveux;supprimer",1,LOCATE(";", "maphrase;cequejeveux;supprimer")-1) AS FirstWord;

      Explication:

      LOCATE permet de localiser la chaine ";" dans la 2nde chaine passée en paramètre (INSTR a l'ordre inverse pour les paramètres)

      SUBSTR(chaine,début,longueur) va retourner la sous-chaine commençant au caractère de position "début" et d'une longueur de "longueur" caractères.

      https://sql.sh/fonctions/locate

      https://sql.sh/fonctions/substring 

      Donc si on veut appliquer ça  dans la colonne entière, la requête suivante devrait faire le job (à vérifier cependant avant sur une table test, je ne suis pas à l'abri d'avoir fait une erreur)

      UPDATE table
      SET nom_colonne = SUBSTR(nom_colonne,1,LOCATE(";", nom_colonne)-1) 
      WHERE LOCATE(";", nom_colonne)<>0

      La clause WHERE permet de ne modifier que les lignes contenant un point-virgule.


      • Partager sur Facebook
      • Partager sur Twitter

      SQL supprimer des caractères après un ;

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown