저는 varchar 열에서 검색을 수행해야하는 mysql 데이터베이스가 있습니다. 모든 데이터는 latin1로 인코딩됩니다. 때로는이 열에 서양 악센트 부호가있는 문자가 있습니다 (거의 항상 프랑스어입니다.) 기본 데이터 정렬 (latin1_swedish_ci)을 사용하면 항상 정상적으로 작동합니다. 하지만 이제는 움라우트가 포함 된 일부 데이터에 문제가 있습니다. "nusserhof"를 검색하면 mysql이 "nüsserhof"를 반환하기를 원하지만 그렇지 않습니다. latin1_german1_ci하는 데이터 정렬을 변경하면이 쿼리 단어 "nüsserhof"를 포함하는 모든 행을 반환 작동 예를 들어 가장 간단한 의미에서 문제가 해결되지 :mysql collate latin1_german1_ci가 주문과 작동하지 않습니다
select * from mytable where mycolumn like '%nusserhof%' collate latin1_german1_ci;
을하지만 order by 절을 추가하면 더 이상 작동합니다. 이 단어 "nüsserhof"를 포함하는 모든 행을 반환하지 않습니다
select * from mytable where mycolumn like '%nusserhof%' order by mycolumn collate latin1_german1_ci;
놀랍게도, 여기 나 구글을 통해 이것에 대해 아무것도 찾을 수 없습니다. 이 예상되는 동작입니까? 해결 방법은 PHP로 선택을 정렬 한 후 정렬하는 것입니다. 그러나 나는 그것이 작동하도록해야 할 것처럼 보입니다.