6

我的数据库、表、字段都使用 utf8mb4。我可以很好地将表情符号存储到某些字段中。现在我尝试查询,例如:

SELECT * FROM userWHERE 名称=''

令人惊讶的是,结果是字段名称不同的记录,例如 ''

看起来 mysql 通过长度而不是内容来匹配表情符号字符串。

有什么想法可以解决这个问题吗?非常感谢。

4

3 回答 3

2

刚刚对我的桌子做了这个命令:

ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

就这样。结果是正确的。

于 2016-02-18T04:03:43.830 回答
1

尝试这个:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
于 2016-01-26T08:56:47.170 回答
0

你桌子上的整理顺序是什么?由于您使用的是 utf8mb4 它应该是utf8mb4_unicode_ci. 其他任何事情,您都可能会遇到您所看到的问题 - 更糟糕的是,您甚至可能会返回多条记录。

要设置整理顺序,请使用:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
于 2015-07-23T10:54:10.400 回答