카테고리 없음

[SQL] 리스트 형태의 컬럼에서 특정 값 찾기

왕초보코딩러 2025. 1. 14. 10:26
728x90

MySQL에서 컬럼이 리스트일 경우 특정 값이 있는 지 확인하기

 

공백 없이 쉼표로 구분된 리스트

'A,B,C'

 

특정 값 찾기

FIND_IN_SET()

FIND_IN_SET(특정 값, 컬럼)

없으면 0을 반환

 

+ LIKE 사용

컬럼 LIKE '%특정값%'

하지만 %A%를 했을 때 리스트 안에 AA가 있다면 다른 결과가 나올 수도 있다.


문제

https://school.programmers.co.kr/learn/courses/30/lessons/157343

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

리스트 안에서 특정 값이 있는지 확인하는 문제였습니다.

 

1. FIND_IN_SET 사용

SELECT CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS
FROM CAR_RENTAL_COMPANY_CAR
WHERE FIND_IN_SET('네비게이션', OPTIONS) # 'A,B,C' 형태로 되어 있을 때 찾음
ORDER BY CAR_ID DESC;

 

2. LIKE 사용

SELECT CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '%네비게이션%'
ORDER BY CAR_ID DESC;