[MySQL] url 에서 도메인만 가져오는 sql은?
2025. 1. 18. 21:58ㆍDatabase
MySQL에서 URL에서 도메인만 추출하려면 SUBSTRING_INDEX 함수와 INSTR 또는 LOCATE를 조합해서 사용할 수 있습니다.
여기서 도메인은 URL의 http:// 또는 https:// 뒤의 첫 번째 / 앞에 위치한 부분입니다.
SQL 예제: URL에서 도메인 추출
다음은 URL이 저장된 urls 테이블의 url 열에서 도메인만 추출하는 SQL입니다.
[sql]
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(url, '/', 3), '/', -1) AS domain FROM urls;
구문 설명
SUBSTRING_INDEX(url, '/', 3):
- URL을 / 기준으로 세 번째 /까지 잘라냅니다.
- 예: http://example.com/path/page → http://example.com
SUBSTRING_INDEX(..., '/', -1):
- 위에서 잘라낸 결과에서 마지막 부분(도메인)을 가져옵니다.
- 예: http://example.com → example.com
실제 URL 예시
|
url
|
domain
|
|
example.com
|
|
|
www.google.com
|
특정 상황 처리
서브도메인 제거
- 도메인에서 서브도메인을 제거하려면 SUBSTRING_INDEX를 다시 사용합니다.
- sql
- SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(url, '/', 3), '.', -2) AS domain FROM urls;
- 예: www.google.com → google.com
URL이 http:// 또는 https://로 시작하지 않을 때:
- URL이 반드시 http://나 https://로 시작하지 않을 경우를 처리하려면 조건을 추가해야 합니다:
- sql
- SELECT CASE WHEN INSTR(url, '://') > 0 THEN SUBSTRING_INDEX(SUBSTRING_INDEX(url, '/', 3), '/', -1) ELSE SUBSTRING_INDEX(url, '/', 1) END AS domain FROM urls;
- URL이 example.com/path처럼 단순한 경우도 처리합니다.
이 SQL을 사용하면 다양한 형식의 URL에서 도메인을 쉽게 추출할 수 있습니다. 필요에 따라 서브도메인 제거 등 세부 조정이 가능합니다!

'Database' 카테고리의 다른 글
| [PHP - MYSQL] 한국 시각 기준으로 DateTime 객체를 불러와서 날짜와 시간을 넣어주는 방법 (1) | 2025.01.18 |
|---|---|
| [MySQL] 데이타베이스 특정 테이블에서 https:// 를 모두 없애주도록 Update 하는 SQL (0) | 2025.01.18 |