SQL 초성으로 이름 찾는 방법에 대해 알아보겠습니다. 딱히 필요한 거 같진 않지만, 자음으로 데이터를 찾아야할 일이 생겨서 저와 같은 Case가 생기시면 도움이 되시라고 포스팅하게 되었습니다 🙂
SQL 초성으로 이름 찾는 방법
초성으로 이름을 찾아야 하는데, 딱히 생각나는 게 없었습니다. LIKE..? IN..? 모두 엄청난 노가다성 코드가 필요한 것 같아서 어느정도 창의성을 발휘해야할 것 같더라구요.
그러다 문득 웹 개발 시 “아이디” input 값을 필터링할 때 쓰는 정규식과 WHERE 절의 BETWEEN 연산자가 떠올랐습니다.
BETWEEN A AND B
BETWEEN 연산자는 문자의 경우 유니코드 기준으로 작동합니다.
즉, 유니코드상 “가-힣”은 모든 문자 범위를 포함합니다.
자음으로 데이터 찾기
테스트로 특정 테이블에서 자음 ㅎㄱㄷ으로 구성된 이름을 찾아보겠습니다.
SELECT USERNAME FROM USERLOGIN WHERE SUBSTRING(USERNAME,1,1) BETWEEN '하' AND '힣' AND SUBSTRING(USERNAME,2,1) BETWEEN '가' AND '깋' AND SUBSTRING(USERNAME,3,1) BETWEEN '다' AND '딯'
잘 필터링 되는 것을 확인할 수 있습니다 🙂
완료입니다.
※ DB에 따라서 콜레이션 설정과 문자열 처리 규칙이 다를 수 있습니다.
답글 남기기