Mysql에서 다른데 같은 값 구별하는 법

마가·2023년 4월 17일
0

trial-error

목록 보기
19/19
select * from kurve.google_keyword_search_trend_daily
where keyword_name = 'a 34' and country_code = 'BR';

를 쳤더니
a 34뿐만 아니라 à 34 이런 값도 같이 나왔다.
충격적인 이 결과물은
Collation 이라는 개념으로, 바이너리가 다르지만 같은 값으로 간주되어서 그렇다.

일반적인 해법은

select * from kurve.google_keyword_search_trend_daily
where keyword_name = BINARY'a 34' and country_code = 'BR';

으로 쿼리문을 바이너리로 계산하라고 하는 것이다.

하지만 db 설정을 할 권한이 있고, 이 둘을 항상 구별한다면...

ALTER TABLE `kurve`.`google_keyword_search_trend_daily` 
CHANGE COLUMN `keyword_name` `keyword_name` VARCHAR(128) CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin' NULL DEFAULT NULL ;

처럼 collate에 ci가 없는 것을 선택하면 된다.
ci는 case insensitive 인 것인가...?

profile
마음 가는 길은 죽 곧은 길

0개의 댓글