Я будую SQL- запит у C #. Він буде відрізнятися залежно від деяких умов, що зберігаються як змінні в коді.
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 ";
Це працює, але тестування 1 = 1 не здається елегантним. Якщо я не використовував його, я повинен був би пам’ятати та перевіряти кожен раз, чи ключове слово «де» було додане чи ні до запиту.
Чи є приємніше рішення?
Select 42
запитів, які ми отримували. (не забавно намагалися відстежити джерело)
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
- Тому ти і використовуєш 1 = 1
. Двигун бази даних все одно оптимізує його, тому, хоча це може виглядати некрасиво, це далеко не найпростіший спосіб вирішити проблему.
42 = 42
;-)