Every Step Matters

[프로그래머스 SQL Lv.1] 강원도에 위치한 생산공장 목록 출력하기 (MySQL) 본문

Database/SQL

[프로그래머스 SQL Lv.1] 강원도에 위치한 생산공장 목록 출력하기 (MySQL)

imnyoung 2025. 11. 26. 07:50

문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/131112

 

프로그래머스

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

programmers.co.kr

 

1. 테이블 : FOOD_FACTORY

Column name Type Nullable
FACTORY_ID VARCHAR(10) FALSE
FACTORY_NAME VARCHAR(50) FALSE
ADDRESS VARCHAR(100) FALSE
TLNO VARCHAR(20) TRUE

 

2. 문제

FOOD_FACTORY 테이블에서 (1) 강원도에 위치(2) 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 (3) 공장 ID를 기준으로 오름차순 정렬해주세요.

 

3. 문제풀이

강원도에 위치한 값을 찾기 위해서는 ADDRESS 컬럼을 이용해야 하는데, ADDRESS 컬럼 값은 다음과 같이 나와 있어서, 모든 값이 동일해야 하는 IN 함수나 '='으로는 찾을 수 없다. 이럴 때 쓰는 것이 LIKE이다.

LIKE는 특정 문자를 포함한 데이터를 검색할 때 사용한다. 이때 %나 _과 같은 와일드 카드 문자를 이용한다. %는 0개 이상의 문자를 대신 표현할 수 있고, _는 무조건 1개의 문자만 대신 표현한다. 

와일드카드 문자란?
- 컴퓨터에서 특정 명령어로 명령을 내릴 때, 여러 파일을 한꺼번에 지정할 목적으로 사용하는 기호를 가리킨다.

해당 문제에서는 주소에 '강원도'라는 단어가 들어가기만 하면 강원도에 위치한 곳이므로 '강원도' 앞뒤에 '%'를 붙여서 '강원도' 단어 앞에도 0개 이상의 문자가 올 수 있고, 뒤에도 0개 이상의 문자가 올 수 있음을 표현한다. 쿼리로 나타내면 아래와 같다.

WHERE address LIKE '%강원도%'

 

4. 정답

따라서 정답은

SELECT factory_id, factory_name, address
FROM food_factory
WHERE address LIKE '%강원도%'

 


Reference

https://bramhyun.tistory.com/16

 

[MYSQL] LIKE 함수 - 특정 문자 검색하기

LIKE() 함수 LIKE 함수는 문자열 내에서 내가 원하는 문자열을 찾는 함수입니다. REGEXP를 자주 사용하지만, 간단하게 LIKE를 사용하기도 합니다. LIKE함수는 WILDCARDS 문자들과 함께 쓰입니다. WILDCARD에

bramhyun.tistory.com