[MySQL] url 에서 도메인만 가져오는 sql은?

2025. 1. 18. 21:58Database

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):

SUBSTRING_INDEX(..., '/', -1):

  • 위에서 잘라낸 결과에서 마지막 부분(도메인)을 가져옵니다.
  • 예: http://example.com → example.com

실제 URL 예시


특정 상황 처리

서브도메인 제거

  • 도메인에서 서브도메인을 제거하려면 SUBSTRING_INDEX를 다시 사용합니다.
  1. sql
  2. SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(url, '/', 3), '.', -2) AS domain FROM urls;
  • 예: www.google.com → google.com

URL이 http:// 또는 https://로 시작하지 않을 때:

  • URL이 반드시 http://나 https://로 시작하지 않을 경우를 처리하려면 조건을 추가해야 합니다:
  1. sql
  2. 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에서 도메인을 쉽게 추출할 수 있습니다. 필요에 따라 서브도메인 제거 등 세부 조정이 가능합니다!