블로그 이름

[MariaDB] MySQL, MariaDB 문자열 대소문자 구분하기 본문

개발/Database

[MariaDB] MySQL, MariaDB 문자열 대소문자 구분하기

Hide 2025. 2. 25. 23:48

ORACLE DB에서는 반환값이 하나였던게, MariaDB에서는 여러개 반환되는 경우가 있다.

ORACLE은 대소문자 구분을 하지만 MariaDB에서는 문자열 대소문자 구분을 못한다.

 

SELECT * FROM USER WHERE USERID='hello';

 

위 쿼리로 조회했을때, hello와 Hello, HELLO 등 대소문자 구분 없이 조회되는 것이다.

 

위 해결 방법은 아래와 같다.

 

1. BINARY 함수 사용

SELECT * FROM USER WHERE BINARY(USERID)='hello';

 

BINARY를 추가하여 조회 시, hello와 같은 소문자로만 이루어진 문자열만 조회된다.

 

2. 테이블 설정 변경

ALTER TABLE USER CHANGE USERID USERID VARCHAR(10) BINARY

 

3. DB 설정 변경

SHOW VARIABLES LIKE 'lower%';

위 쿼리 조회 시

lower_case_table_names 값이 0이면 대소문자 구분, 1이면 구분하지 않는다.

 

my.cnf에서 수정 후 restart 시 변경 가능하다.

 

오늘은 MariaDB에서 문자열 대소문자 구분하는 방법을 알아보았다.