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 :

mise a jour d'un champ en fonction d'un autre champ


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Points : 57
    Points
    57
    Par défaut mise a jour d'un champ en fonction d'un autre champ
    Bonjour

    J'ai une table avec 3 champs: nom , modif et numero.

    je fais un update :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update matable set nom=:nom where numero=:numero
    Est-il possible dans la même requête de modifier le champ modif uniquement si la nouvelle valeur du champ "nom" est différente de l'ancienne
    modif=0 si pas de modification
    modif=1 si modification

    (c'est pour éviter d'avoir à stocker les anciennes valeurs dans des variables locales)

    merci à tous

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Ceci devrait fonctionner mais en supposant que par défaut la colonne (et pas champ ! ) est égale à 0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE matable 
    SET nom = :nom,
    	modif = 1
    WHERE numero = :numero
    	AND nom <> :nom
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Points : 57
    Points
    57
    Par défaut
    je te remercie

    je ne savais pas qu'on pouvait utiliser les valeurs passées en paramètres dans la clause where

    ma colonne modif est effectivement à 0 par défaut.

    Si j'ai bien compris, la requete ne s'effectuera que sur les lignes modifiées

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/04/2009, 11h00
  2. utiliser l'un ou l'autre champ en fonction d'un autre
    Par Romalafrite dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 11/05/2007, 16h37
  3. Réponses: 1
    Dernier message: 03/05/2007, 09h10
  4. [VBA] Remplir un champ en fonction d'un autre champ
    Par Amanck dans le forum Access
    Réponses: 6
    Dernier message: 18/05/2006, 11h12

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