Problème avec l'erreur « Mélange illégal de classements » dans MySql
Rencontrer l'erreur « Mélange illégal de classements » lors de l'exécution d'une requête peut être frustrant. Pour résoudre ce problème, procédez comme suit :
Vérifiez les classements
Tout d'abord, identifiez les colonnes avec des classements incompatibles. Exécutez la requête suivante :
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;
Corriger les incohérences de classement
Une fois que vous avez identifié les colonnes incriminées, ajustez leurs classements pour qu'ils correspondent au classement requis à l'aide de la requête suivante :
ALTER TABLE tbl_name CONVERT TO CHARACTER SET latin1 COLLATE 'latin1_swedish_ci';
Remplacez "tbl_name" par le nom de la table présentant les incohérences de classement.
Exemple
Application de ces étapes à l'exemple de requête fourni résoudra le problème :
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
Précautions
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!