본문으로 건너뛰기
최종 수정: 에

SOUNDEX

설명​

SOUNDEX 함수는 문자열의 Soundex 인코딩을 계산합니다. Soundex는 영어 단어를 발음을 나타내는 코드로 인코딩하는 발음 기반 알고리즘으로, 발음이 비슷한 단어는 동일한 인코딩을 갖습니다.

인코딩 규칙: 대문자 한 글자 뒤에 숫자 세 자리가 오는 4자리 코드를 반환합니다(예: S530).

구문​

SOUNDEX(<expr>)

매개변수​

매개변수설명
<expr>Soundex 인코딩을 계산할 문자열입니다(ASCII 문자만 지원). 타입: VARCHAR

반환 값​

문자열의 Soundex 인코딩을 나타내는 VARCHAR(4) 타입을 반환합니다.

특수한 경우:

  • 인수가 NULL이면 NULL을 반환합니다
  • 문자열이 비어 있거나 영문자가 없으면 빈 문자열을 반환합니다
  • ASCII 영문자만 처리하며 다른 문자는 무시합니다
  • ASCII가 아닌 문자가 있으면 함수에서 오류가 발생합니다

예제​

  1. 기본 사용법: 단어 인코딩
SELECT soundex('Doris');
+------------------+
| soundex('Doris') |
+------------------+
| D620 |
+------------------+
  1. 발음이 비슷한 단어는 동일한 인코딩을 가짐
SELECT soundex('Smith'), soundex('Smyth');
+------------------+------------------+
| soundex('Smith') | soundex('Smyth') |
+------------------+------------------+
| S530 | S530 |
+------------------+------------------+
  1. 빈 문자열 처리
SELECT soundex('');
+-------------+
| soundex('') |
+-------------+
| |
+-------------+
  1. NULL 값 처리
SELECT soundex(NULL);
+---------------+
| soundex(NULL) |
+---------------+
| NULL |
+---------------+
  1. 빈 문자열을 입력하면 빈 문자열 반환
SELECT soundex('');
+-------------+
| soundex('') |
+-------------+
| |
+-------------+
  1. 영문자 이외의 문자만 있으면 빈 문자열 반환
SELECT soundex('123@*%');
+-------------------+
| soundex('123@*%') |
+-------------------+
| |
+-------------------+
  1. 영문자 이외의 문자 무시
SELECT soundex('R@b-e123rt'), soundex('Robert');
+-----------------------+-------------------+
| soundex('R@b-e123rt') | soundex('Robert') |
+-----------------------+-------------------+
| R163 | R163 |
+-----------------------+-------------------+
  1. ASCII 이외의 문자만 포함된 경우의 오류 예제
SELECT soundex('你好');  
ERROR 1105 (HY000): errCode = 2, detailMessage = Not Supported: Not Supported: soundex only supports ASCII, but got: 你
SELECT soundex('Apache Doris 你好');
+--------------------------------+
| soundex('Apache Doris 你好') |
+--------------------------------+
| A123 |
+--------------------------------+

키워드​

SOUNDEX