Maison  >  Article  >  base de données  >  Comment résoudre l'erreur « Mélange illégal de classements » dans les requêtes MySQL ?

Comment résoudre l'erreur « Mélange illégal de classements » dans les requêtes MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-03 23:59:301051parcourir

How to Resolve

Résolution de tri de caractères illégaux dans MySql avec erreur de classement

En essayant de combiner deux sous-requêtes dans une requête SQL, vous pouvez rencontrer le message « Illégal erreur de mélange de classements". Cela se produit lorsque les colonnes impliquées dans des comparaisons ou des opérations ont des paramètres de jeu de caractères ou de classement différents.

Pour résoudre cette erreur, il est nécessaire de s'assurer que les colonnes utilisées dans la requête ont le même classement. Pour déterminer les colonnes concernées, consultez 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;

Cela affichera les colonnes avec le classement 'latin1_general_ci'. Pour résoudre l'erreur, convertissez les colonnes en conflit en classement « latin1_swedish_ci » à l'aide de cette requête :

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

En rectifiant l'incompatibilité du classement, la requête peut être exécutée avec succès :

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

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn