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 :

Condition IF


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Par défaut Condition IF
    Bonjour j'ai un probleme que je ne sais pas trop comment resoudre.

    En fait, j'aimerais mettre à jour un champs de ma base de donnée mais que si ca rempli une certain condition.

    voici ma requete :

    $sql = UPDATE ".$tbl_contact." SET
    contact_bloc_note = CONCAT('".$note."',contact_bloc_note),
    contact_date_rappel = '".$date_rappel."',
    contact_niveau= '3'
    WHERE contact_id = '".$contact_id."'

    Et mon probleme est sur le contact_niveau. J'aimerais que le contact_niveau soit mis à jour si il est égal ou inférieur à 2.
    Et si il est déjà égal à 3 ou supérieur que ca le mette pas a jour.

    Alors bien sur, je pourrais faire une requete avant pour voir quelle est la valeur actuelle, mais je souhaiterais mettre cette condition dans une seul requete.

    J'ai tésté les condition IF mais ca ne fonctionne pas trop
    http://dev.mysql.com/doc/refman/5.0/...statement.html

    Quelqu'un sait il comment faire?

    Merci!

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Et ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     AND contact_niveau < '3'
    ça ne suffit pas ?

  3. #3
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    salut,


    donc si j'ai bien compris tu modifie 3champs si contact niveau est inférieur à 3 et 2 sinon. c'est bien cela?


    donne la requte que tu as testé, le message d'erreur renvoyé ainsi que ta version de mysql

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Par défaut Re
    Non ce n'est pas tout a fait cela.

    Le niveau du contact peut etre de 1 à 4 lorsque j'effectue ma requete.
    Quoi qu'il arrive je souhaite effetuer ma requette car elle met a jour des champs de ma base de donnée.
    Mais ce que je veux c'est que le champs : contact_niveau soit mis à 3 si la valeur d'avant est 1 ou 2 et 3 à la rigueur.
    Mais ce que je ne veut pas c'est que ca update mon champs a la valeur 3 si la valeur d'avant était 4 car le contact redescendrait dans les niveaux.

    Je sais le faire sur 2 requetes distincte faisant un SELECT et vérifiant la valeur du champs. Mais j'aimerais savoir si on peut faire la condition directement dans la requete.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE voxx_contact SET contact_bloc_note = 'COOL' ,contact_date_rappel = '2006-03-03', IF(contact_niveau< '4',contact_niveau='3',contact_niveau='4' ) WHERE contact_id = '1'

  5. #5
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE ...
    SET contact_niveau = IF(contact_niveau<4, 3, contact_niveau)
    Voilà !
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Par défaut Re
    Super Merci,
    t'es un pro,
    je t'aime,
    I love you baby

    C'était simple en fait

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

Discussions similaires

  1. Condition If multiple
    Par M1000 dans le forum ASP
    Réponses: 2
    Dernier message: 01/03/2004, 13h46
  2. [MYSQL] conditions et requetes
    Par sebos63 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/02/2004, 16h41
  3. Condition sur debug et release
    Par xave dans le forum MFC
    Réponses: 3
    Dernier message: 04/02/2004, 15h04
  4. Condition et contenu TImage
    Par Detlev_linux dans le forum Langage
    Réponses: 6
    Dernier message: 23/12/2003, 01h00
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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