where 1 = 1 을 쓰는 이유는 유동적인 쿼리 만들 때 편하게 쿼리 만들려는 게 가장 큰 이유이고 쿼리 속도에는 영향이 없어요.
예를 들어
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | sQuery = "select .. \r\n" + " from \r\n" + " where 1 = 1 \r\n" ; if (조건) { sQuery = sQuery + " and acol = '12345' \r\n" ; } else if (조건) { sQuery = sQuery + " and acol = '54321' \r\n" ; } sQuery = sQuery + " and bcol = 'abcde' \r\n" ; |
if 조건에 해당하는 것들이 없어서 select 문 뒤에 바로 and.. 구문이 나와도
쿼리 오류가 나지 않죠.
where 1 = 1을 해놓지 않고 if문 만으로 쿼리를 만들려면 where 구문까지
생각하고 만들어야 하니 if문이 복잡해지겠죠.