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 :

IF THEN ELSE dans 1 requête


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut IF THEN ELSE dans 1 requête
    Bonjour,
    Jai besoin de rentrer une condition dans une requête:
    $sql="SELECT* FROM WHERE... AND...ORDER BY..."
    En fait si un de mes champs est NULL alors sa valeur = un autre champ de la requête.
    Pensez-vous que ce soit possible, j'ai déjà regardé la doc MySQL, mais je n'y arrive pas.

    Merci!

  2. #2
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 364
    Points : 5 378
    Points
    5 378
    Par défaut
    Salut

    Je comprends pas bien, peux-tu donner un exemple ?

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    La fonction IF existe bien sous MySQL et s'utilise comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IF(monChamp1 IS NULL, monChamp2, monChamp1)
    Cette syntaxe renverra monChamp2 à la place de monChamp1 si monChamp1 est NULL ; sinon, c'est monChamp1 qui est renvoyé.

    Maintenant, tu as une fonction toute faite pour ça, qui s'appelle COALESCE() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COALESCE(monChamp1, monChamp2)
    COALESCE renvoie la première occurence non nulle qu'il rencontre dans la liste qui lui est passée en paramètre. Dans le cas présent, quand monChamp1 vaut NULL, c'est monChamp2 qui est renvoyé, sinon c'est monChamp1.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par ced Voir le message
    Bonjour,

    La fonction IF existe bien sous MySQL et s'utilise comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IF(monChamp1 IS NULL, monChamp2, monChamp1)
    Cette syntaxe renverra monChamp2 à la place de monChamp1 si monChamp1 est NULL ; sinon, c'est monChamp1 qui est renvoyé.

    Maintenant, tu as une fonction toute faite pour ça, qui s'appelle COALESCE() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COALESCE(monChamp1, monChamp2)
    COALESCE renvoie la première occurence non nulle qu'il rencontre dans la liste qui lui est passée en paramètre. Dans le cas présent, quand monChamp1 vaut NULL, c'est monChamp2 qui est renvoyé, sinon c'est monChamp1.

    ced
    Merci je vais tester ça!

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Je te remarcie ça marche nickel!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/06/2012, 21h40
  2. [AC-2007] test if then else dans boucle for next
    Par markuus dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/08/2011, 11h41
  3. condition if then else dans un select
    Par bringer dans le forum SQLite
    Réponses: 5
    Dernier message: 11/07/2009, 00h25
  4. if then else dans un select
    Par Fiona08 dans le forum SQL
    Réponses: 8
    Dernier message: 12/08/2008, 15h14
  5. fonction if/then/else dans une requete Access
    Par steve38 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/12/2006, 17h09

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