문제 :
FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.
✅ 확인해야할 조건
1. 주소에 강원도가 포함되어 있는 데이터만 추출
2. 추출할 컬럼은 FACTORY_ID, FACTORY_NAME, ADDRESS 세 가지
3. FACTORY_ID를 기준으로 오름차순 정렬
코드
-- 코드를 입력하세요
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS FROM FOOD_FACTORY WHERE ADDRESS LIKE CONCAT('%','강원도','%') ORDER BY FACTORY_ID ASC;
출력 결과
SQL 에서 특정 문자열을 포함하는지 확인하기 !
데이터를 불러올 떄 모두 다 불러오는 것이 아니라 조건을 만족하는 데이터만 불러오고 싶을 때 , 그 조건으로 특정한 단어나 문자열을 포함하는지 여부를 확인할 때 설정할 수 있다.
이런 경우 '%' 를 사용하여 확인해주면 된다.
'%' 는 어떤 문자열이든 상관 없다는 뜻이다.
'%' 가 앞에 붙으면 해당 문자열 앞으로 어떤 문자열이 오든 상관 없다는 뜻이고, '%' 가 뒤에 붙으면 해당 문자열 뒤로 어떤 문자열이 오든 상관 없다는 뜻이다.
특정한 문자열 앞뒤로 '%' 를 붙이면 해당 문자열을 가운데에 두고 앞뒤로 어떤 문자열이 오든 상관 없다는 뜻이다.
즉, 그 문자열을 포함하는 모든 문자열을 의미함
따라서 이를 SQL 로 표현하여 '강원도'라는 문자열을 포함한 데이터만 추출해주고 싶을 떄 WHERE ADDRESS LIKE CONCAT('%','강원도','%')
를 사용해주었다.