Heim  >  Artikel  >  Datenbank  >  Wie behebt man den Fehler „Unzulässige Sortierungsmischung“ in MySQL?

Wie behebt man den Fehler „Unzulässige Sortierungsmischung“ in MySQL?

Susan Sarandon
Susan SarandonOriginal
2024-11-05 00:50:02721Durchsuche

How to Fix the

Unzulässige Kombination von Sortierungen in MySQL: Eine detaillierte Anleitung zur Lösung

Beim Arbeiten an einer Abfrage mit mehreren Tabellen kann der Fehler auftreten „Illegale Kombination von Sortierungen.“ Dieses Problem tritt auf, wenn die Zeichensätze und Sortierungen, die in den an der Abfrage beteiligten Tabellen und Spalten verwendet werden, nicht übereinstimmen.

Um diesen Fehler zu beheben, müssen Sie die spezifischen Spalten identifizieren, die die Nichtübereinstimmung verursachen, und ihre Sortierungen entsprechend ändern der Rest der Tische. Hier ist eine Schritt-für-Schritt-Anleitung:

Identifizieren der nicht übereinstimmenden Spalten:

  1. Führen Sie die folgende Abfrage aus, um die Spalten mit widersprüchlichen Sortierungen zu finden:
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;

Diese Abfrage identifiziert alle Spalten in Ihrer Datenbank, die die Sortierung „latin1_general_ci“ verwenden.

Sortierungen konvertieren:

Sobald Sie dies getan haben Wenn Sie die nicht übereinstimmenden Spalten identifiziert haben, können Sie deren Sortierungen mit dem Befehl ALTER TABLE so konvertieren, dass sie mit den übrigen Tabellen übereinstimmen. Um beispielsweise die Spalte „Benutzername“ in der Tabelle „Benutzer“ in „latin1_swedish_ci“ zu konvertieren, verwenden Sie den folgenden Befehl:

ALTER TABLE users CONVERT TO CHARACTER SET latin1 COLLATE 'latin1_swedish_ci';

Hinweis: Der Zeichensatz und die Sortierung von Die Primärschlüsselspalte muss mit der Fremdschlüsselspalte in verwandten Tabellen übereinstimmen, um Sortierfehler zu vermeiden.

Beispielabfrage:

Hier ist eine überarbeitete Version Ihrer ursprünglichen Abfrage mit Das Kollatierungsproblem wurde behoben:

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;

Durch Befolgen dieser Schritte können Sie den Fehler „Ungültige Mischung von Kollatierungen“ beheben und sicherstellen, dass Ihre Abfragen mit konsistenten Zeichensätzen und Kollatierungen korrekt funktionieren.

Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „Unzulässige Sortierungsmischung“ in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn