sql >> Database >  >> RDS >> Mysql

Problemen oplossen Illegale mix van sorteringen fout in mysql

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;


  1. Een SQL Server Agent-taak verwijderen in Azure Data Studio

  2. Hoe te bestellen op datum in PostgreSQL of Oracle

  3. Werken met MySQL-database-engines

  4. PL/SQL print ref-cursor geretourneerd door een opgeslagen procedure