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 :

Ne mettre une condition dans la clause where du select que si la variable existe


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut Ne mettre une condition dans la clause where du select que si la variable existe
    Bonjour,

    j'ai une requête SELECT avec plein de conditions dans la clause WHERE.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql=SELECT count(*) AS cpt_pres_in_l from `license` where sesa<>{$pp_pres_in_l($SESAID)} OR
             currently_active<>{$pp_pres_in_l($CURRENTLYACTIVE)} OR activate_date<>{$pp_pres_in_l($ACTIVATEDATE)} OR
             deactivate_date<>{$pp_pres_in_l($DEACTIVATEDATE)}
    qui peut se résumer en
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql=SELECT count(*) AS cpt_pres_in_l from `license` where sesa<>{$VAL1} OR
             currently_active<>{$pp_pres_in_l($VAL2} OR activate_date<>{$VAL3} OR
             deactivate_date<>{$VAL4}
    Autrement dit, une requête SELECT qui teste l'existence de 4 variables dans 4 colonnes. Le problème est que l'existence de certaines variables est aléatoire. Par exemple, si la variable $VAL4 n'existe pas, la requête doit simplement être
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql=SELECT count(*) AS cpt_pres_in_l from `license` where sesa<>{$VAL1} OR
             currently_active<>{$pp_pres_in_l($VAL2} OR activate_date<>{$VAL3}
    Peut-on rajouter dans le SQL une condition du genre IF EXISTS pour ne mettre cette condition que si la variable existe ? Probablement oui, mais comment on fait ?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 136
    Par défaut
    Et pourquoi ne pas faire effectuer ce travail de construction dynamique de requête par ton langage de programmation ?
    Que signifie "la variable $VAL4 n'existe pas" ?
    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
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Tout à fait ; c'est ce que j'ai fini par décider de faire mais n'avais pas coché car j'étais curieux de savoir si on pouvait le faire en SQL.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     $sql_pres_in_l = <<<sql2
      SELECT count(*) AS cpt_pres_in_l from `license` where sesa<>{$pp_pres_in_l($SESAID)} OR
             currently_active<>{$pp_pres_in_l($CURRENTLYACTIVE)} OR activate_date<>{$pp_pres_in_l($ACTIVATEDATE)}
    sql2;
                list($mois,$jour,$annee)=$DEACTIVATEDATE;
                if (checkdate($mois,$jour,$annee)) $sql_pres_in_l.="OR
             deactivate_date<>{$pp_pres_in_l($DEACTIVATEDATE)}";

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

Discussions similaires

  1. Mettre une condition dans la partie ON(jointure) ou where?
    Par messi1987 dans le forum Développement
    Réponses: 3
    Dernier message: 23/03/2015, 10h07
  2. Mettre une condition dans une action
    Par barouz dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 24/04/2007, 11h24
  3. [C# 2.0]Mettre une condition dans un repeater
    Par giloutho dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/11/2006, 19h13
  4. mettre une condition dans l'ajout de données
    Par ash_rmy dans le forum Access
    Réponses: 2
    Dernier message: 27/07/2006, 13h29
  5. tri par rapport à une liste dans la clause where
    Par umbakrail dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 19/07/2006, 11h32

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