2016-04-14 45 views
0

INSERT INTO table_namecol_name)VALUES('');MariaDB選擇錯誤的Unicode字符

SELECT * FROM table_name WHERE col_name ='';

我認爲沒有行必須從第二個查詢返回,但返回。

該表爲utf8mb4,並帶有排序規則utf8mb4_unicode_ci。

是否與ci有關?我想保留它。

+0

您使用的是MySQL還是MariaDB?儘管MariaDB是(應該是)MySQL的替代品,但我希望在這種情況下,行爲可能會有所不同,因此應該刪除其中一個標籤。 – Arjan

+0

我正在使用MariaDB – user3396065

回答

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

息率1和0

即,utf8mb4_unicode_ci對待表情符號爲相等,但utf8mb4_unicode_520_ci將它們視爲不同。

因此,將col_name的排序規則更改爲utf8mb4_unicode_520_ci