MySQL 콤마(,)로 구분된 데이터를 쿼리로 정확히 찾는 방법 입니다.
item 컬럼에 다음과 같이 값이 저장 되어 있을경우 정확히 C가 들어 있는 데이터를 찾는 방법 입니다.
like '%%' 구문으로는 한계가 있습니다.
like '% C%'할 경우 CC도 같이 검색될테니까요.
정확히 item 3, item 4만 찾고 싶은경우
item 1 = AA,BB,CC
item 2 = AA,CC,DD
item 3 = AA,C,DD
item 4 = AA,BB,C
MySQL의 FIND_IN_SET() 함수를 사용하면 됩니다.
FIND_IN_SET('[찾을값]', [컬럼명])
select * from [테이블명] where FIND_IN_SET('C', item);
또한 ,가 아닌 다른 구분자로 되어 있을경우, 예를 들어 |로 되어 있을경우도 FIND_IN_SET(), REPLACE()로 찾을수 있습니다.
select * from DB.TABLE where FIND_IN_SET( 'C', REPLACE( item, '|', ',' ) )
참고 : https://squareinven.tistory.com/23
MYSQL WHERE 구분자 치환(REPLACE)하여 in 사용
제목이 좀 헷갈리죠? 저도 쓰면서 어떤게 적당할지 아래처럼 고민하다가 그냥 저렇게 했습니다. (1) where절에서 in 사용하는데 replace로 치환해서 검색(2) in과 replace 동시에 쓰기 혹은(3) FIND_IN_SET 에
squareinven.tistory.com
참고 : https://blog.work6.kr/319
[Mysql] mysql 콤마로 구분된 데이터에서 정확한 값 찾기
컬럼 안에 위와 같이 데이터가 콤마로 구분되어 저장된 경우가 있다. 이런 경우 정확히 c 만 가진 데이터를 찾을수 없다. like '%c%'할 경우 cc도 같이 검색될테니까... 이럴땐 이렇게 해보자. 정확히
blog.work6.kr
'MySQL' 카테고리의 다른 글
| MariaDB에서 AUTO_INCREMENT 컬럼의 시작 번호를 1부터 다시 설정하는 방법 (1) | 2025.06.19 |
|---|