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;