Я создаю 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 не выглядит элегантной. Если бы я не использовал его, мне пришлось бы каждый раз запоминать и проверять, было ли уже добавлено ключевое слово «where» в запрос или нет.
Есть ли лучшее решение?
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;-)