【发布时间】:2016-03-18 15:23:57
【问题描述】:
我将单个表情符号存储在 MySQL 数据库的 CHAR 列中。该列的编码是utf8mb4。
当我运行这个聚合查询时,MySQL 不会按表情符号字符分组。而是返回带有单个表情符号的单行以及数据库中所有行的计数。
SELECT emoji, count(emoji) FROM emoji_counts GROUP BY emoji
这是我的表定义:
CREATE TABLE `emoji_counts` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`emoji` char(1) DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
我需要考虑一些特殊的 Unicode 行为吗?
【问题讨论】:
-
查询从哪里运行?你知道你在进入的路上是否正确编码吗?还是说表本身的数据好?
-
现在,直接通过 Sequel Pro 上的控制台运行查询。表格中的数据看起来不错 - 表情符号通过
SELECT * FROM emoji_counts查询正确显示