Indeks hanya dapat digunakan jika susunan ekspresi cocok dengan kolom yang diindeks.
Jika ekspresi COERCIBILITY
lebih rendah dari kolom (yaitu 2
), susunan kolom dicor ke ekspresi, dan indeks tidak digunakan.
Biasanya, literal memiliki COERCIBILITY
dari 4
dan variabel pengguna dari 3
, jadi ini seharusnya tidak menjadi masalah.
Namun, jika Anda mencampur susunan yang berbeda dalam JOIN
atau UNION
, urutan pemeran tidak dijamin.
Dalam hal ini Anda harus memberikan susunan eksplisit ke kolom yang Anda casting (kemungkinan besar, Anda ingin mentransmisikan latin1
ke UTF8
), dan ini harus menjadi susunan kolom yang Anda casting:
SELECT *
FROM utf_table
JOIN latin_table
ON utf_column = latin_column COLLATE UTF8_GENERAL_CI