728x90
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
- 오늘의 한 줄 -
꿈에도 생각하지 못했다.
공감과 구독은 저에게 크나큰 힘이 됩니다♡
함께 보면 좋은 글
링크가 없습니다.
728x90
'IT > DBMS' 카테고리의 다른 글
[Oracle/MySQL] 교착 상태 해결하는 방법 (0) | 2023.02.17 |
---|---|
[MySQL] 1071 ERROR (767 byte 오류) (0) | 2020.11.11 |