Hal ini umumnya disebabkan oleh membandingkan dua string susunan yang tidak kompatibel atau dengan mencoba memilih data dari susunan yang berbeda ke dalam kolom gabungan.
Klausa COLLATE memungkinkan Anda menentukan susunan yang digunakan dalam kueri.
Misalnya, berikut WHERE klausa akan selalu memberikan kesalahan yang Anda posting:
WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs
Solusi Anda adalah menentukan susunan bersama untuk dua kolom dalam kueri. Berikut adalah contoh yang menggunakan COLLATE klausa:
SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;
Pilihan lain adalah dengan menggunakan BINARY operator:
BINARY str adalah singkatan dari CAST(str AS BINARY).
Solusi Anda mungkin terlihat seperti ini:
SELECT * FROM table WHERE BINARY a = BINARY b;
atau,
SELECT * FROM table ORDER BY BINARY a;