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;