질문/조언질답게시판

혹시 in을 사용하면 해당 컬럼에 비교하는 값이 포함만 되어있어도 선택이 되는 건가요??

 

 

ex) 회원번호 123456   <----   in 345 

회원번호 123456 이 선택

 

 

이런거라면 회원번호가 일치해야만 하는 경우 선택되어야 하는 경우는 이것을 사용하면 안될 것 같아서요.

이건 like 일거 같긴 한데요...

 

아니면...

 

회원번호 컬럼에 345와 일치하는 값이 있다면...  이건가요?

이러면  operation="equal" 과 차이점이 없는 것 같아서요.

  • profile

    본문에 예제로 언급하신 조건은 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 에 정리되어 있습니다.

  • profile profile

    아.. 그럼 배열에 담긴 복수의 값을 사용할때는 equal을 쓰면 문제가 발생하게 되는 건가요???

    링크를 읽어 보았는데 equal 과 차이점을 발견하기 어려워서요.

  • profile profile

    배열에 담긴 복수의 값을 찾으려면 in을 쓰시면 됩니다.
    *_srl 류의 숫자가 일치하는 것을 찾을 때는 웬만하면 모두 in을 쓰셔도 됩니다.
    in은 1개도 되고 100개도 되지만, equal은 무조건 1개밖에 안 되니까요.
    동일한 갯수를 찾을 경우 성능 차이는 사실상 없다고 보셔도 됩니다.

  • profile profile
    감사합니다. 확실하게 in 이 왜 필요한지 알았습니다. 제가 주말에 작업한 것이 내가 팔로우한 회원들의 복수 회원번호를 가지고 그회원들의 글을 가져오는 쿼리에 in이 들어가야 하는게 맞는거였군요.
    이래저래 해보고 결과를 가지고 역으로 다시 공부하는 이상한 공부를 하고 있습니다 ㅋ