Sto costruendo alcune query SQL in C #. Sarà diverso a seconda di alcune condizioni memorizzate come variabili nel codice.
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 ";
Funziona, ma testare 1 = 1 non sembra elegante. Se non lo usassi, dovrei ricordare e controllare ogni volta se la parola chiave "dove" è già stata aggiunta o meno alla query.
C'è una soluzione migliore?
Select 42richieste che stavamo ricevendo. (non è stato divertente cercare di rintracciare la fonte)
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- Ecco perché usi 1 = 1. Il motore di database lo ottimizza comunque, quindi anche se potrebbe sembrare brutto, è di gran lunga il modo più semplice per risolvere il problema.

42 = 42