本文介紹了僅在某些情況下,MySQL才返回不正確的UTF8擴展字符的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
注意:在下面的問題中,您可能會看到?或塊而不是字符,這是因為您沒有適當的字體。請忽略此操作。
背景
我有一個表,其中的數據結構如下:
CREATE TABLE `decomposition_dup` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
`structure` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
`child` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `parent` (`parent`),
KEY `child` (`child`),
KEY `parent_2` (`parent`,`child`)
) ENGINE=InnoDB AUTO_INCREMENT=211929 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
和一些示例數據:
INSERT INTO `decomposition_dup` (`id`, `parent`, `structure`, `child`) VALUES
(154647, '錦', 'a', '钅'),
(154648, '錦', 'a', '帛'),
(185775, '钅', 'd', '二'),
(185774, '钅', 'd', '?'),
(21195, '钅', 'd', '