我将单个表情符号存储在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行为?
答案 0 :(得分:3)
结果我需要在查询中指定扩展的排序规则,即utf8mb4_bin
。
这有效:
<?php
$string = "&foo=bar&foo2=bar2";
parse_str($string, $output);
print_r($output);
编辑:某些服务器配置(包括ClearDB&#39; s)上没有可用的排序规则...... {{1}}似乎也可以使用。