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

Comment corriger l'erreur « Mélange illégal de classements » dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-13 06:14:13968parcourir

How to Fix the

Résolution de l'erreur « Mélange illégal de classements » dans MySQL

Lorsque vous tentez d'exécuter une procédure stockée MySQL impliquant une instruction SELECT, vous pouvez rencontrez l’erreur « Mélange illégal de classements ». Ce problème survient en raison de divergences dans le classement de la table et des colonnes comparées ou triées.

Le classement de la table est latin1_general_ci, tandis que la colonne de la clause WHERE utilise latin1_general_cs. Ces classements incompatibles entraînent l'erreur.

Solution 1 : spécifiez un classement partagé à l'aide de la clause COLLATE

Utilisez la clause COLLATE pour spécifier un classement commun pour les colonnes du requête :

WHERE column1 COLLATE latin1_general_ci = column2 COLLATE latin1_general_ci

Solution 2 : Utiliser le BINAIRE Opérateur

Vous pouvez également utiliser l'opérateur BINARY, qui traite les chaînes comme des données binaires :

WHERE BINARY column1 = BINARY column2

Remarque :

Quand en utilisant l'opérateur BINAIRE, gardez à l'esprit qu'il désactive toute indexation potentielle sur la colonne en question.

Pour des informations complètes sur des sujets liés à la collation, reportez-vous à la réponse très perspicace fournie par eggyal dans une discussion similaire.

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