Estoy construyendo una consulta SQL en C #. Diferirá según algunas condiciones almacenadas como variables en el código.
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 ";
Funciona, pero probar 1 = 1 no parece elegante. Si no lo usé, tendría que recordar y verificar cada vez si la palabra clave "donde" ya se agregó o no a la consulta.
¿Existe una mejor solución?
Select 42consultas que estábamos recibiendo. (no es divertido intentar rastrear la fuente)
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- Por eso usas 1 = 1. El motor de la base de datos lo optimiza de todos modos, por lo que, si bien puede verse feo, es, con mucho, la forma más fácil de resolver el problema.

42 = 42;-)