IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Remplacer dans les tables les caractères spéciaux par des non spéciaux


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 138
    Points : 67
    Points
    67
    Par défaut Remplacer dans les tables les caractères spéciaux par des non spéciaux
    Bonjour,

    j'ai une base de données avec une table contenant des réponses à un sondage. Les réponses contiennent des accents, des caractères spéciaux, etc.

    Je veux utiliser un générateur de graphique (histogramme, etc) qui va chercher les données dans cette table. çà, çà fonctionne.

    Mais, les lettres avec accent et les caractères spéciaux font "déconner" les libellés de mon histogramme. Ne pouvant modifier le générateur de graphique, je souhaiterais remplacer toutes les lettres avec accents et les caractères spéciaux par d'autres lettres de j'aurais défini. .

    Par exemple, je souhaiterais une requête qui irait chercher tous les "é" présent dans la table et qui les remplacerait par "e". Ensuite j'utiliserais cette même requête pour d'autres caractères.

    Merci d'avance

  2. #2
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Utilisez la fonction REPLACE et remplacez 'é' par 'e'

    Ou créez une fonction utilisateur qui serait un "amalgame de fonction replace". Le traitement sera long.

    REPLACE(str,from_str,to_str) Retourne une chaîne de caractères str dont toutes les occurrences de la chaîne from_str sont remplacées par la chaîne to_str :
    mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
    -> 'WwWwWw.mysql.com'
    Cette fonction gère les caractères multi-octets.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 138
    Points : 67
    Points
    67
    Par défaut
    Merci pour la réponse rapide

    J'ai tapé cela dans l'onglet SQL de mon Phpmysql :
    Select
    replace(Age,"à","a")
    from
    js_gdsondage_femme
    pour remplacer par exemple "de 30 à 39 ans" en "de 30 a 39 ans".

    Après avoir lancé la requête, çà m'affiche le champs "Age" avec les modif appliquéés. Mais lorsque je retourne dans l'onglet "Afficher", rien n'a changé dans le champs "Age", j'ai toujours les "à" au lieu de "a".

  4. #4
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    La requête SELECT permet de sélectionner des informations.

    Pour modifier les enregistreements de votre table définitivement, il faut utiliser UPDATE.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE nom_de_la_table SET nom_du_champ = REPLACE(nom_du_champ,'à','a')

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 138
    Points : 67
    Points
    67
    Par défaut
    çà fonctionne impeccable, merci pour votre aide. Ce forum est très réactif.

    Pour éviter de faire cette opération champs par champs, j'ai voulu mettre une étoile à la place du nom du champs, mais j'ai un message d'erreur. Ce n'est peut-être pas possible ?
    UPDATE js_gdsondage_femme SET * = REPLACE(*,'à','a')

  6. #6
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Non ce n'est pas possible.

    Par contre, vous pouvez le faire en une seule requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     UPDATE nom_de_la_table 
        SET nom_du_champ1 = REPLACE(nom_du_champ1,'à','a'),
            nom_du_champ2 = REPLACE(nom_du_champ2,'à','a')

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Lister dans un formulaire les tables qui commence par "toto"
    Par morinxav dans le forum VBA Access
    Réponses: 4
    Dernier message: 16/04/2015, 12h59
  2. Réponses: 4
    Dernier message: 08/04/2015, 09h29
  3. [Turbo Pascal] Fonction qui remplace les caractères entrés par des étoiles (*)
    Par Dr.Mimo dans le forum Contribuez
    Réponses: 0
    Dernier message: 30/03/2012, 21h51
  4. Réponses: 2
    Dernier message: 27/01/2009, 15h50
  5. Actualiser les tables de SQL Server par du code ?
    Par hannii dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/10/2007, 12h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo