Dit wordt meestal veroorzaakt door het vergelijken van twee reeksen incompatibele sortering of door te proberen gegevens van verschillende sortering in een gecombineerde kolom te selecteren.
De clausule COLLATE stelt u in staat de sortering te specificeren die in de zoekopdracht wordt gebruikt.
Bijvoorbeeld de volgende WHERE clausule geeft altijd de fout die je hebt gepost:
WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs
Uw oplossing is om een gedeelde sortering op te geven voor de twee kolommen in de query. Hier is een voorbeeld dat de COLLATE . gebruikt clausule:
SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;
Een andere optie is om de BINARY . te gebruiken operator:
BINARY str is de afkorting voor CAST(str AS BINARY).
Uw oplossing kan er ongeveer zo uitzien:
SELECT * FROM table WHERE BINARY a = BINARY b;
of,
SELECT * FROM table ORDER BY BINARY a;