IT/DBMS

[MySQL] 쿼리 조회 시 대소문자 구별, 구분 방법

까망수염 2020. 11. 9. 23:30
728x90

1
주제

 

MySQL쿼리 사용 시 대소문자 구분 방법은?


프로젝트를 진행하던 중 생각지도 못한 이슈를 확인하였다.

우선 사용되는 버전은 5.6 이다.

MySQL은 테이블명이나 컬럼명이 대소문자를 구분하는 것은 알고 있었다.

하지만 쿼리에서 대소문자가 구분이 안된다는 것은 전혀 생각지 못했다...;;;


방법을 찾아보니 다 향한 케이스들로 처리하는 방법이 존재하였다.

1. 쿼리 작성 시 WHERE절에 binary를 설정
=> SELECT * FROM test_table WHERE BINARY yn = 'Y';

일반적으로 BINARY를 사용하지 않으면 y, Y 모두 검색된다.
2. 테이블 생성 시 컬럼에 binary 옵션을 주어 테이블을 생성
=> create table test_table (yn varchar(1) binary null) engine=innoDB default charset=utf8;

생성시 컬럼에 binary로 생성을 한다면 WHERE절에 불필요한 옵션은 사용하지 않아도 된다.

찾아본 해결 방안은 이렇게 두 가지였다.

하나가 더 있는데 불편한 추가 작업이 더 있어서 그것은 비추되는 방식이었다.ㅋㅋ

개발 경력이 그래도 쫌 되는데 이번에는 진짜 예상치도 못한 이슈였다.

대상에서 소문자로 데이터를 주는데 DB에서 대문자의 키값에 맞춰서 조회가 되다니....;;;;ㅋㅋㅋ

해당 이슈는 결과적으로 나의 또 하나의 지식이 되었다!!


▼▽▼▽ 링크 ▼▽▼▽

https://zetawiki.com/wiki/MySQL_%EB%8C%80%EC%86%8C%EB%AC%B8%EC%9E%90_%EA%B5%AC%EB%B3%84

 

MySQL 대소문자 구별 - 제타위키

 

zetawiki.com


- 오늘의 한 줄 -

꿈에도 생각하지 못했다.


공감 구독은 저에게 크나큰 힘이 됩니다♡

함께 보면 좋은 글
링크가 없습니다.
728x90

'IT > DBMS' 카테고리의 다른 글

[Oracle/MySQL] 교착 상태 해결하는 방법  (0) 2023.02.17
[MySQL] 1071 ERROR (767 byte 오류)  (0) 2020.11.11