2010-02-03 5 views
1

오류 "데이터 정렬의 불법 믹스":이 오류의 이유를 이해Unduplicatable 내 레일 응용 프로그램의 오류 로그를 통해가는 사람이 다음과 같은 오류로 실행 하였음을 보여주었습니다

"Mysql::Error: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=': SELECT * FROM `tags` WHERE (name = LOWER('?')) LIMIT 1" 

그러나 I 내가 그것을 복제 할 수 없기 때문에 문제를 해결하려고 노력하고있다. 내 데이터베이스 연결은 utf8 연결을 사용하고 테이블의 데이터 정렬은 latin1_swedish_ci이지만 아무리 노력해도 오류를 복제 할 수 없습니다.

utf8_general_ci 데이터 정렬로 변경해야하며 문제가 해결되기를 바랍니다. 아니면 다른 아이디어가 있습니까?

답변

2

지난 주에 동일한 문제가 발생했습니다. 제 경우에는 결국 하나의 필드가 latin1_swedish_ci으로 표기되어 있었는데 그 테이블은 UTF-8이었습니다. 주로 UTF-8 데이터베이스를 실행 중이고 문자열 데이터에 대해 이야기하고 있다면 데이터 정렬을 변경하고 문제를 해결할 것입니다. 지금은 오류와 같은 방식으로 사용하지 않을 수도 있지만 예를 들어 잊어 버리고 해당 데이터에 조인을 남겨두면 나중에 문제가 발생할 수 있습니다.