Maison > base de données > tutoriel mysql > Comment résoudre l'erreur « Mélange illégal de classements » de MySQL ?

Comment résoudre l'erreur « Mélange illégal de classements » de MySQL ?

DDD
Libérer: 2024-12-22 13:37:17
original
607 Les gens l'ont consulté

How to Solve MySQL's

Dépannage de l'erreur « Mélange illégal de classements » dans MySQL

Lorsque vous rencontrez l'erreur « Mélange illégal de classements » dans MySQL lors de l'exécution d'une procédure stockée , il est prudent d'examiner les causes sous-jacentes.

Le classement joue un rôle essentiel dans MySQL, déterminant le jeu de caractères et règles de tri. Une inadéquation dans les classements entre une table et une colonne référencée dans la clause WHERE peut conduire à cette erreur.

Pour résoudre le problème, spécifiez un classement partagé pour les deux colonnes impliquées dans la comparaison. La clause COLLATE vous permet de remplacer le classement par défaut pour une expression spécifique. Par exemple :

WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs
Copier après la connexion

Cette requête déclenchera toujours l'erreur lorsqu'elle comparera des chaînes avec différents classements. Au lieu de cela, vous devez spécifier explicitement le classement partagé :

SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;
Copier après la connexion

Alternativement, l'opérateur BINARY peut être utilisé pour forcer une comparaison binaire, en ignorant les classements :

SELECT * FROM table WHERE BINARY a = BINARY b;
Copier après la connexion
SELECT * FROM table ORDER BY BINARY a;
Copier après la connexion

Attention la conversion de colonnes à des fins de comparaison, comme dans le cas de l'opérateur BINARY, peut avoir un impact sur les performances d'indexation. Reportez-vous à la réponse complète d'Eggyal pour plus d'informations sur les classements MySQL.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal