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 :

Résultat requête par défaut


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par défaut Résultat requête par défaut
    Bonsoir à tous,

    Depuis qq temps je cherche à écrire une requête qui puissent me substituer le résultat obtenu par une chaîne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT champs1 FROM table1 WHERE id = 23
    Si le champs1 est retourné vide je souhaite qu'il soit "rempli" avec une chaîne standard!
    Comment faire ?

    [MàJ] En fait je pense m'être mal exprimé Lorsque la req renvoie une valeur vide (donc que l'étudiant n'a pas rempli le champs) je souhaite que ce soit la valeur du champs de la ligne 0 de la table qui soit retournée.
    QQ chose comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(champs[ligne x] = "") {champs[ligne 0]}
    J'espère avoir été plus clair
    D'avance merci

  2. #2
    Membre émérite Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Par défaut
    Bonjour
    Pour modifier la valeur d'un champ d'un enregistrement existant, utilise UPDATE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE matable SET monchamp ='mavaleur' WHERE macondition
    Pour mavaleur, dans ton cas, c'est le résultat d'une requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    champs1=(SELECT champs1 FROM table1 WHERE id = '0')
    Attention : en général, les champs id sont en autoincrément et commence à 1 et non à 0.

    Pour macondition, dans ton cas, c'est

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par défaut
    Merci pour ta réponse, je fais un SELECT qui me devrait me retourner soit la valeur dans la ligne lambda soit la valeur de la ligne 0.

    J'ai tenté cet AM (je n'avais pas vu ta réponse, dsl) ceci qui me fonctionne pas !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql = 'SELECT champs1
    FROM Table1
    WHERE id =100
    IF champs1 == "" THEN
    	SELECT champs1 FROM Table1 WHERE id = 0
    END IF';
    Pourquoi cette foutu ne fonctionne pas ?

    Qqu'un comprends pourquoi ?
    D'avance merci

  4. #4
    Membre émérite Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Par défaut
    ton IF doit se trouver du côté des champs à visualiser et utilser la syntaxe de MySQL IF(condition, valeur si oui, valeur sinon)
    Code mysql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT IF ( champs1 !='', champs1,(SELECT champs1 FROM Table1 WHERE id = '0') AS R0) AS' champ à afficher' 
    FROM Table1   WHERE id ='100'

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Par défaut
    Merci pour ta réponse que je vais tester.

    je m'étais inspiré de ceci.

    http://www.mysqltutorial.org/mysql-if-statement/

    Je reviens vers toi ASAP.
    Bonne soirée

    [MàJ] Super ta requête fonctionne nickel. Je l'ai modifié un peu sinon j'avais une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IF ( champs1 !='', champs1,(SELECT champs1 FROM Table1 WHERE id = '0')) AS' champ à afficher' FROM Table1   WHERE id ='100'
    Maintenant comment faire pour faire la même chose sur toutes les col de la table càd lorsque la requête renvoie un champs vide il est remplacé par le champ de ligne 0 ?

    Encore merci pour ta réponse.
    Bonne soirée

  6. #6
    Membre émérite Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Par défaut
    Bonjour.
    c'est un peu fastidieux mais tu vas devoir répéter la portion de requête pour chaque champ
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT 
    IF ( champs1 !='', champs1,(SELECT champs1 FROM Table1 WHERE id = '0')) AS 'champs_1',  
    IF ( champs2 !='', champs2,(SELECT champs2 FROM Table1 WHERE id = '0'))  AS 'champs_2',
    ...
     FROM Table1 WHERE id ='100'

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/06/2013, 15h38
  2. [SSIS] [2K8] Envoyer résultat requête par mail
    Par StitchP dans le forum SSIS
    Réponses: 1
    Dernier message: 14/05/2010, 16h51
  3. [AC-2003] [Requête Union] : renvoyer une valeur par défaut en cas d'absence de résultat
    Par ludovicparis dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/04/2010, 20h25
  4. Résultat commençant par un chiffre avec requête SELECT
    Par nicolas.pissard dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/04/2010, 13h31
  5. Réponses: 3
    Dernier message: 18/05/2003, 00h16

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