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

Langage SQL Discussion :

Swap des valeurs d'un champ sur deux lignes


Sujet :

Langage SQL

  1. #1
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut Swap des valeurs d'un champ sur deux lignes
    Bonjour,

    Je travaille avec une base sur MySQL 5.0.15.
    Je voudrai faire (en une requete si possible) un swap des valeurs d'un champs pour deux enregistrements différents.

    Concrètement j'ai une table TABLE avec les champs A, B, C, D, etc...
    Et je souhaite inverser les valeurs du champs A par exemple pour deux lignes différentes.

    Un début de requete serait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update TABLE SET A = (SELECT A FROM TABLE WHERE A=63) WHERE A=42
    Sauf que là, je met bien 63 à la place de 42 mais pas 42 à la place de 63...

    Auriez-vous une idée?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Avec un simple case :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UPDATE MA_TABLE 
    SET A = ( CASE A
       WHEN 63 THEN 42
       WHEN 42 THEN 63
       END
      )
    WHERE A IN (42, 63)
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Un grand merci al1_24, ça fonctionne parfaitement!

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    meme si le post est vieux... un grand merci pour la réponse car je viens de l'utiliser pour gérer un système d'ordre et ça marche super en 1 seule requete ))

  5. #5
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Encore plus vieux, mais toujours pratique !!

    je vais mettre ça sous le coude !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/06/2011, 12h14
  2. Réponses: 1
    Dernier message: 24/07/2009, 15h40
  3. La meme valeur dans un champ sur plusieurs lignes
    Par JeanduB dans le forum Access
    Réponses: 8
    Dernier message: 15/05/2008, 14h52
  4. aligner un champ sur deux lignes
    Par lince102 dans le forum Mise en page CSS
    Réponses: 36
    Dernier message: 02/05/2008, 16h02
  5. [VB.NET] DataGrid : titre des colonnes sur deux lignes
    Par Lahouari dans le forum Windows Forms
    Réponses: 6
    Dernier message: 06/12/2004, 14h44

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