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