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 :

Passer une partie de colonne dans une autre


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2013
    Messages : 48
    Points : 27
    Points
    27
    Par défaut Passer une partie de colonne dans une autre
    Bonjour !

    Cette discussion est une « suite » à la discussion http://www.developpez.net/forums/d12...e/#post7082430

    J'ai des noms de famille et les prénoms correspondants groupés dans une seule colonne ("lastName").
    Je voudrais faire passer les prénoms dans une autre colonne nommée "firstName".

    On pourrait convenir, par exemple, d'une coupure qui se ferait au premier espace blanc après le premier mot (qui est toujours un nom de famillle).

    Exemple :
    À partir de 'Durand Jacques' ou 'Dupont-Lajoie Jean-Claude'
    Obtenir 'Durand', 'Jacques' ou 'Dupont-Lajoie', 'Jean-Claude'

    Ce cas de figure représente la très très grande majorité des cas (plus de 90%).
    Je peux réaliser manuellement les modifications liées aux cas des noms à particule.

    Pourriez-vous m'indiquer comment rédiger ma requëte ?

    Merci d'avance pour votre aide !

  2. #2
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Dans l'autre discussion, tu as un exemple d'utilisation de LOCATE qui permet de trouver l'emplacement d'un caractère.

    Dans cette nouvelle requête, il faut donc que tu trouves le premier espace puis que tu affectes à lastName ce qui suit l'espace. Ensuite tu pourras mettre à jour la colonne firstName en ne conservant que ce qui se trouve avant l'espace. Enfin, tu pourras régler à ta guise le cas des noms à particule, celle-ci ayant été déplacée dans la colonne firstName.

    Bon courage !

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2013
    Messages : 48
    Points : 27
    Points
    27
    Par défaut
    Merci, CinePhil, pour ta réponse.

    C'est l'inverse.
    La partie qui suit le premier espace blanc est transférée dans firstName («prénom»).
    Le premier mot (Durand ou Dupont-Lajoie) reste dans la colone lastName qui veut dire en anglais US « nom de famille » (surname en anglais UK). Ces anglo-saxons ne font rien comme tout le monde...
    Mais ce n'est pas important...

    L'important, c'est que tu me surestimes un peu.
    Oui, j'ai bien vu la section LOCATE et je crois l'avoir comprise.

    Je vais quand même essayer d'écrire la fonction.
    Faut bien apprendre...

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2013
    Messages : 48
    Points : 27
    Points
    27
    Par défaut
    Bon, alors voilà, j'ai exécuté :

    UPDATE table SET firstName= SUBSTR(lastName,LOCATE(' ',lastName));

    ce qui m'a tranféré tous les prénoms dans la bonne colonne (firstName)
    mais qui m'a laissé la colonne des noms de famille (lastName) intacte.

    Comment supprimer les prénoms dans cette colonne?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2013
    Messages : 48
    Points : 27
    Points
    27
    Par défaut
    J'ai réussi !

    J'ai exécuté (après la requête précédente) :

    UPDATE table SET lastName= SUBSTRING_INDEX(lastName, ' ', 1);

    Youpi !!!

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

Discussions similaires

  1. Rechercher une partie de cellule dans une autre feuille
    Par gallus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/10/2013, 20h56
  2. [XL-2007] couper une partie des données dans une autre colonne
    Par ivan_isaak dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/11/2011, 11h06
  3. Réponses: 1
    Dernier message: 26/12/2010, 22h20
  4. utiliser une liste comme colonne dans une autre liste
    Par ahmedmido dans le forum SharePoint
    Réponses: 1
    Dernier message: 15/07/2008, 10h42
  5. copier une partie d´un fichier dans un autre
    Par makohsarah dans le forum Langage
    Réponses: 8
    Dernier message: 23/08/2006, 10h53

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