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

MS SQL Server Discussion :

requête avec "where 1"


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 72
    Points : 68
    Points
    68
    Par défaut requête avec "where 1"
    Bonjour,

    Je n'ai pas une grande expérience du sql. Je viens d'utiliser une requête dans laquelle on m'a conseillé de mettre "where 1" (équivalent à "where 1=1").
    Cela permet d'utiliser des arguments et d'adapter la requête en fonction de la présence ou non d'argument.
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // reservation et initialisation d''une variable
    char        MaChaine = "SELECT Nom, Prenom FROM Table1 WHERE 1 = 1";
    char        NOM[20] = ""
    ...
     
    // Traitement
    if(!strcmp(NOM, ""))        sprintf(MaChaine, "%s AND Nom = %s", MaChaine, NOM);
     
    // Lancement de la requête
    Toutefois, je ne comprends pas très bien ce where 1=1. J'ai bien vu que cela n'empêche pas la sélection de la totalité des enregistrements, mais je ne comprends pas son fonctionnement.
    Bien que je ne sois pas sûr d'être très clair, est-ce que quelqu'un pourrait m'éclairer ?

    Merci d'avance

  2. #2
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Le where 1 = 1 est un petit artifice te permettant ensuite d'aligner tes arguments en ajoutant :
    Sans cet artifice, tu aurais du coder le fait que le premier argument ne prennait pas de "and" et les suivants oui.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 72
    Points : 68
    Points
    68
    Par défaut
    Merci pour ta réponse rapide.
    C'est ce que j'avais vaguement compris, mais ça restait assez nébuleux.

    @+

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

Discussions similaires

  1. Requête avec champ NULL simple quote
    Par tidou95220 dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/07/2012, 13h15
  2. Réponses: 4
    Dernier message: 26/07/2011, 11h29
  3. requête avec un where sur une date
    Par tibofo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 06/02/2011, 20h58
  4. Réponses: 16
    Dernier message: 20/01/2011, 12h45

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