Tôi đang tạo một số truy vấn SQL trong C #. Nó sẽ khác nhau tùy thuộc vào một số điều kiện được lưu trữ dưới dạng các biến trong mã.
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 ";
Nó hoạt động, nhưng thử nghiệm 1 = 1 có vẻ không thanh lịch. Nếu tôi không sử dụng nó, tôi sẽ phải nhớ và kiểm tra mọi lúc xem từ khóa "where" đã được thêm vào truy vấn hay chưa.
Có một giải pháp tốt hơn?
Select 42
truy vấn mà chúng tôi nhận được. (không gây cười đã cố gắng để theo dõi các nguồn)
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
- Đó là lý do tại sao bạn sử dụng 1 = 1
. Công cụ cơ sở dữ liệu dù sao cũng tối ưu hóa nó, vì vậy mặc dù nó có thể trông xấu xí, nhưng cho đến nay đây là cách dễ nhất để giải quyết vấn đề.
42 = 42
;-)