Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

UTF-8 vs Latin1 mysql, indeks tidak digunakan pada utf-8

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengakses output prosedur tersimpan MySQL di Zend Framework 2

  2. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Kolom tidak dikenal 'Smith' di 'where clause'

  3. CakePHP:memiliki Banyak asosiasi yang tidak dikenali

  4. Bagaimana cara mengubah nama database menggunakan MySQL?

  5. kesalahan mengubah tabel, menambahkan batasan kunci asing mendapatkan kesalahan Tidak dapat menambah atau memperbarui baris anak