개발중/MYSQL
MYSQL 쿼리 활용 FIND_IN_SET
Binsoo
2022. 5. 23. 10:15
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
반응형