mysql 4

[MySQL] 사운덱스 (Soundex)

영어 이름은 발음은 비슷하거나 거의 같은데 철자가 다른 경우가 많습니다. 예를 들면 루이스라는 이름의 철자는 Lewis, Luis, Louis, ... 여러가지가 나올 수 있습니다. 그래서 이런 헷갈리는 이름의 경우 전화로 이름을 말할때는 스펠링까지 말하기도 합니다. 1920년대에 미국 국립문서기록관리청(NARA, National Archives and Records Administration)에서 인구조사 기록을 효율적으로 관리하기 위해 유사한 발음을 갖는 이름을 그룹화하기 위한 사운덱스 알고리즘을 개발했는데 모든 문자열을 알파벳+3자리 숫자로 표기하는 방식입니다. 알고리즘은 위키에 잘 나와있으니 찾아보시고요, 결과물을 보면 helo=hello=hallow=H400 이런식으로 색인이 만들어집니다. SO..

etc 2020.09.24

[MySQL] 영어 소문자, 대소문자 만들기 (LOWER, UPPER)

LOWER LOWER(str) str: 문자열 문자열 str의 모든 문자가 소문자가 되도록 현재 캐릭터 셋에 따라 반환합니다. 기본값은 utf8mb4입니다. mysql> SELECT LOWER('QUADRATICALLY'); -> 'quadratically' LOWER(+ 후술할 UPPER)는 바이너리 문자열(BINARY, VARBINARY, BLOB)에는 적용되지 않습니다. 그래서 바이너리 문자열에 이 함수를 적용하려면 적절한 캐릭터셋으로 변환한 뒤 LOWER 함수를 적용해줘야 합니다. mysql> SET @str = BINARY 'New York'; mysql> SELECT LOWER(@str), LOWER(CONVERT(@str USING utf8mb4)); +-------------+-------..

etc 2020.09.24

[MySQL] 문자열 앞, 뒤 특정 문자열 제거 (TRIM)

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) TRIM([remstr FROM] str) str: 문자열 remstr: 지울 문자열 TRIM 함수는 문자열 앞이나 뒤의 특정 문자열을 제거하는 함수입니다. 지울 위치를 설정할 수 있는데요, BOTH는 앞, 뒤 양쪽에서 시작하는 부분 문자열을 제거하고, LEADING은 앞부터, TRAILING은 뒤의 문자열을 제거합니다. 위치의 기본값은 BOTH입니다. remstr은 지울 문자열로, 기본값은 공백입니다. mysql> SELECT TRIM(' bar '); -> 'bar' mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx'); -> 'barxxx' mysql> SELECT TR..

etc 2020.09.24

[MySQL] 부분 문자열 함수 (LEFT, RIGHT, SUBSTRING)

MySQL에서 부분 문자열을 가져오는 함수인 LEFT, RIGHT, SUBSTRING에 대해 알아봅시다. LEFT LEFT(str, len) str: 문자열 len: 가져올 문자의 개수 문자열 str에서 왼쪽부터 len 만큼 문자열을 가져옵니다. mysql> SELECT LEFT('abcdefg', 5); -> 'abcde' 예제입니다. 왼쪽부터 다섯글자를 가져온 모습입니다. RIGHT RIGHT(str, len) str: 문자열 len: 가져올 문자의 개수 문자열 str에서 오른쪽부터 len 만큼 문자열을 가져옵니다. mysql> SELECT RIGHT('abcdefg', 3); -> 'efg' 문자열 'abcdefg'에서 오른쪽 세글자를 가져온 예제입니다 SUBSTRING 부분 문자열, 즉 서브스트링..

etc 2020.09.24