>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 \'잘못된 데이터 정렬 혼합\' 오류를 어떻게 해결합니까?

MySQL에서 \'잘못된 데이터 정렬 혼합\' 오류를 어떻게 해결합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-04 02:08:02452검색

How Do I Fix the

MySQL의 잘못된 데이터 정렬 오류: 데이터 정렬 혼합 해결

MySQL의 "잘못된 데이터 정렬 혼합" 오류는 다음과 값을 비교할 때 발생합니다. 다른 문자 집합이나 데이터 정렬. 쿼리의 맥락에서 이 문제를 분석해 보겠습니다.

<code class="sql">SELECT username, (SUM(rating)/COUNT(*)) as TheAverage, Count(*) as TheCount 
FROM ratings WHERE month='Aug' 
AND username IN (SELECT username FROM users WHERE gender =1)
GROUP BY username HAVING TheCount > 4
ORDER BY TheAverage DESC, TheCount DESC</code>

쿼리에 다음 줄을 추가하면

<code class="sql">AND username IN (SELECT username FROM users WHERE gender =1)</code>

"잘못된 데이터 정렬 혼합" 오류가 발생했습니다. 이는 등급 테이블의 사용자 이름 열과 사용자 테이블의 사용자 이름 열의 데이터 정렬이 다를 수 있기 때문입니다.

잘못된 데이터 정렬 식별:

어느 데이터 정렬인지 확인하려면 열이 데이터 정렬 충돌을 일으키는 경우 다음 쿼리를 사용하세요.

<code class="sql">SELECT table_schema, table_name, column_name, character_set_name, collation_name
FROM information_schema.columns
WHERE collation_name = 'latin1_general_ci'
ORDER BY table_schema, table_name, ordinal_position;</code>

이 쿼리는 latin1_general_ci 데이터 정렬이 있는 테이블과 열을 표시합니다.

문제 해결:

오류를 해결하려면 데이터 정렬이 잘못된 테이블을 필요한 데이터 정렬(일반적으로 latin1_swedish_ci)로 변환하세요. 다음 쿼리를 사용하세요.

<code class="sql">ALTER TABLE tbl_name CONVERT TO CHARACTER SET latin1 COLLATE 'latin1_swedish_ci';</code>

여기서 tbl_name은 데이터 정렬이 잘못된 테이블의 이름입니다.

데이터 정렬 충돌을 해결하면 수정된 쿼리가 성공적으로 실행됩니다.

위 내용은 MySQL에서 \'잘못된 데이터 정렬 혼합\' 오류를 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.