Je construis une requête SQL en C #. Il différera en fonction de certaines conditions stockées en tant que variables dans le code.
string Query="SELECT * FROM Table1 WHERE 1=1 ";
if (condition1)
Query += "AND Col1=0 ";
if (condition2)
Query += "AND Col2=1 ";
if (condition3)
Query += "AND Col3=2 ";
Cela fonctionne, mais tester 1 = 1 ne semble pas élégant. Si je ne l'utilisais pas, je devrais me souvenir et vérifier à chaque fois si le mot-clé «où» était déjà ajouté ou non à la requête.
Y a-t-il une meilleure solution?
Select 42
requêtes que nous recevions. (pas amusant d'essayer de retrouver la source)
If I didn't use it, I would have to remember and check every time if "where" keyword was already added or not to the query
- C'est pourquoi vous utilisez 1 = 1
. Le moteur de base de données l'optimise de toute façon, donc bien que cela puisse paraître moche, c'est de loin le moyen le plus simple de résoudre le problème.
42 = 42
;-)