문제

단일 쿼리를 실행 해야하는 물리적으로 분리 된 MySQL 데이터베이스가 두 개 있습니다.

쿼리에는 다음과 같은 SQL 섹션이 있습니다.

and foo_table.bar_column like concat('%', rules.pattern, '%') COLLATE utf8_general_ci

데이터베이스 A에서는 잘 실행되지만 데이터베이스 BI에서는이 오류가 발생합니다.

ERROR 1253 (42000): COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'

Collation을 제거하면 데이터베이스 B에서 정상적으로 실행되지만 데이터베이스 AI에서는이 오류가 발생합니다.

ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation 'like'

두 데이터베이스에서 실행될 쿼리 버전이 있습니까?

아니면 두 데이터베이스에서 변경할 수있는 구성이 있습니까? 두 곳에서 쿼리를 행복하게 만들 수 있습니까?

업데이트:

데이터베이스 A는 버전 5.1.38, 데이터베이스 B는 버전 5.1.34입니다.

도움이 되었습니까?

해결책

유망한 여기에 정보.

업데이트: 구문이 약간 구체화되지 않았지만 더 이상 각 열을 변환 할 필요는 없지만 해당 링크의 제안은 내 문제를 해결했습니다.

ALTER TABLE the_latin_one CONVERT TO CHARACTER SET utf8;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top