혹시 in을 사용하면 해당 컬럼에 비교하는 값이 포함만 되어있어도 선택이 되는 건가요??
ex) 회원번호 123456 <---- in 345
회원번호 123456 이 선택
이런거라면 회원번호가 일치해야만 하는 경우 선택되어야 하는 경우는 이것을 사용하면 안될 것 같아서요.
이건 like 일거 같긴 한데요...
아니면...
회원번호 컬럼에 345와 일치하는 값이 있다면... 이건가요?
이러면 operation="equal" 과 차이점이 없는 것 같아서요.
댓글 4
본문에 예제로 언급하신 조건은 in이 아니라 like입니다.
하지만 like의 경우도 본문처럼 123456에 345가 들어가있다고 판단하지 않습니다. like은 like aaa%처럼 사용해 aaa11, aaa12312같은 값을 찾아낼수 있습니다. 다만 숫자데이터를 문자열처럼 저장한경우 like %345%처럼 사용해 345가 들어간 데이터를 찾을수는 있습니다.
in은 where 컬럼명 in ('aaa','bbb','ccc')처럼 사용하며 where 컬럼명='aaa' or 컬럼명='bbb' or 컬럼명='ccc'와 같은 역할을 합니다.
xe xml query도 기본적인 사용법은 sql과 유사하기에, 조건 역시 비슷하게 동작합니다. 자세한 건 https://github.com/xpressengine/xe-tutorial/tree/master/XML_Query/06_select_query_with_where 에 정리되어 있습니다.
아.. 그럼 배열에 담긴 복수의 값을 사용할때는 equal을 쓰면 문제가 발생하게 되는 건가요???
링크를 읽어 보았는데 equal 과 차이점을 발견하기 어려워서요.
배열에 담긴 복수의 값을 찾으려면 in을 쓰시면 됩니다.
*_srl 류의 숫자가 일치하는 것을 찾을 때는 웬만하면 모두 in을 쓰셔도 됩니다.
in은 1개도 되고 100개도 되지만, equal은 무조건 1개밖에 안 되니까요.
동일한 갯수를 찾을 경우 성능 차이는 사실상 없다고 보셔도 됩니다.
이래저래 해보고 결과를 가지고 역으로 다시 공부하는 이상한 공부를 하고 있습니다 ㅋ