DBAtlas · 데이터베이스 운영 아틀라스

1267: Illegal mix of collations

MySQL

의미

비교나 결합 작업(JOIN, WHERE, UNION, CONCAT)에서 collation이 다른 두 문자열이 결합되어 MySQL이 어떤 collation 규칙을 적용할지 결정할 수 없었다.

원인

보통 문자 집합/collation이 다른 컬럼을 비교하거나(예: utf8mb4_general_ci vs. utf8mb4_unicode_ci, 또는 latin1 vs. utf8mb4), 컬럼과 연결 collation이 일치하지 않는 경우다. 테이블/데이터베이스가 서로 다른 기본값으로 생성되었을 때 흔하다.

해결 방법

비교의 양쪽을 같은 collation으로 맞춘다: COLLATE로 명시적 collation을 지정하거나(예: col1 = col2 COLLATE utf8mb4_unicode_ci) CONVERT(... USING ...)를 사용한다. 영구 조치로 영향을 받는 컬럼/테이블을 하나의 일관된 문자 집합과 collation으로 변환한다. 연결 collation(collation_connection)도 맞춘다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목