728x90
반응형
쿼리를 쓰다 하나의 속성 값에 여러 코드의 값이 ',' 로 묶여 하나의 문자열로 저장되어 있었는데,
현재 ',' 로 엮인 코드들을 OR 값으로 검색해야 하는 일이 생겼다.
LIKE 절로 하자니 ,,,,, 뭔가 지저분해서 찾은 방법이 FIND_IN_SET 이다!
FIND_IN_SET 는 두 개의 인자를 받는다.
FIND_IN_SET( 찾고자 하는 문자열, 타겟 컬럼 )
아래와 같이 쿼리를 작성하면 즉, CODE 컬럼에 'SB' 라는 문자열이 존재한다면 'SB' 의 인덱스를 반환한다 !
따라서 0 이상이면 내가 찾고자하는 코드가 있다는거다 !
쿼리 활용
SELECT *
FROM SBTABLE
WHERE FIND_IN_SET( 'SB', CODE ) > 0
MYBATIS 활용
<foreach item="item" index="index" collection="sourceTypeList">
<if test="!item.equals('') and item != null and index == 0">
WHERE FIND_IN_SET(#{item}, CODE ) > 0
</if>
<if test="!item.equals('') and item != null and index > 0">
OR FIND_IN_SET(#{item}, CODE) > 0
</if>
</foreach>
728x90
반응형
'개발중 > MYSQL' 카테고리의 다른 글
[MYSQL] 하위요소들 모두 구해주라 (0) | 2022.10.12 |
---|---|
Mysql5 에서 rownum 과 그룹별 rownum (1) | 2022.09.02 |
스칼라 서브쿼리와 인덱스 뷰 성능 차이 알아보고 개선하기 !! 🚦 (0) | 2022.04.25 |
Scala Subquery 와 Left Outer Join 의 성능차이 (2) | 2022.03.25 |
SQL TimeStamp 함수 (0) | 2021.10.18 |