가끔보면 있던데
WHERE 1=1 은 무슨 의미인가요???
그리고 인덱스 사용시에
select *
from 테이블명
에도 속도개선 효과가 있는건가요?
Comment 3
-
이리
2016.03.03 09:58
-
더따뜻한
2016.03.03 17:46
1=1은 별다른 의미능 없습니다. 제 생각에는 주석달기 좋게 쓰는거 같아요.
가끔 1=2 로 해서 쿼리할 때도 있어요. ㅋㅋ 무조건 값이 안나오게. ^^
SELECT *
FROM TBL
WHERE 1=1
AND NAME = '따뜻'
--AND SCHOOL_NM = 'K대'
AND GENDER_GB = 'F'
이렇게 1=1 로 해 놓으면 주석 달기가 좀 편하죠.
안그러면 좀 불편할 때도 있거든요.
하지만, 요론 코딩 싫어하시는 분도 있어요.
오류의 소지도 있거든요. ㅋㅋ
참고로 저는 1=1과 OR 문이랑 함께 써서 낭패본적이 있습니다. ㅋㅋ
WHERE 1=1 OR ( 조건문)
아무리해도 항상 결과가 나와서 이상하다 하구 봤더니.. 1=1 이라고 되어 있떠라구요. ㅠㅠ -
더따뜻한
2016.03.03 17:48
인덱스는 상황에 따라 다르며, 조인을 할 때나 조회를 할 때 조건에 따라서 다릅니다만.~
select *
from 테이블명
위 쿼리에는 별 효과는 없을거에요. ^^*
예전에 파라미터 받아서 SQL문을 만들거나 동적쿼리를 만들때 조건을 만들기 위해 사용했던걸로 알고 있습니다.
예를 들어 이름, 전화번호, 지역 이라는 3개의 조건이 있는데 이 조건들이 하나도 없을수도 있고 여러개일수도 있죠
그럴때
@sqlwhere = @sqlwhere + 'WHERE 1 = 1'
IF 이름이 있으면 @sqlwhere = @sqlwhere + 'AND 이름 = @이름'
IF 전화번호가 있으면 @sqlwhere = @sqlwhere + 'AND 전화번호 = @전화번호'
IF 지역이 있으면 @sqlwhere = @sqlwhere + 'AND 지역 = @지역'
조건이 아무것도 없으면 전체가 나와야 하기에 1 = 1 즉 true값을 준다고 생각하시면 됩니다.
인덱스 상황에 따라 다를거 같습니다.
실행계획을 보고 판단하시는게....