ฉันกำลังสร้างแบบสอบถาม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
;-)