mysql로 테이블을 join해서 데이터를 읽어오려는데 다음과 같은 에러를 만났다.
Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation ‘=’
여태껏 아무 문제없이 테이블끼리 join을 했었는데 … 이번에 새로 추가한 테이블이랑 기존 테이블의 COLLATE가 안맞는거 같다.
SHOWCREATETABLETABLE_NAME;
위 쿼리로 DDL을 보니 새로운 테이블에 COLLATE 값이 빠져있었다.
해결방법
1. COLLATE 추가
ALTERTABLETABLE_NAMECONVERTTOCHARACTERSET utf8mb4 COLLATE utf8mb4_unicode_ci;
2. 조회할 때 COLLATE 명시
WHERE tableA.field COLLATE utf8mb4_general_ci = tableB.field
답글 남기기