2016-04-14 48 views
0

INSERT seçin;mariadb <code>table_name</code> (<code>col_name</code>) VALUES ('') INTO yanlış Unicode karakter

SEC * table_name WHERE col_name = '';

ben fikrimin hiçbir satır ikinci sorgudan iade edilecek vardır, ama döndürülür.

Tablo harmanlama utf8mb4_unicode_ci ile utf8mb4 olup.

Civ ile ilgili bir şey midir? Onu tutmak isterim.

+0

MySQL veya MariaDB kullanıyor musunuz? Her ne kadar MariaDB MySQL için bir yedek ikame olsa da, bu gibi durumlarda davranış farklı olabileceğini umuyorum, bu yüzden etiketlerden biri kaldırılmalıdır. – Arjan

+0

MariaDB kullanıyorum – user3396065

cevap

0
SELECT '' = '' COLLATE utf8mb4_unicode_ci, 
     '' = '' COLLATE utf8mb4_unicode_520_ci; 

eşit 1 ve bir

0, utf8mb4_unicode_ci muamele Emojiler ancak bunları farklı utf8mb4_unicode_520_ci davranır verir.

Yani, utf8mb4_unicode_520_ci için col_name harmanlama değiştirin.