为什么Mysql中的两个字符串相同?

时间:2019-03-07 04:23:28

标签: mysql string duplicate-symbol

我在MySQL中遇到问题:'amelie''amélie'在mysql中是否相同?

当我在表中使用distinct时,它们是相同的。

我正在使用MySQL 8.0.15,发现两个字符串相同。我知道这与语言问题有关,但我不知道该如何解决?请给我一些建议吗?以下是数据:

CREATE TABLE test1 (aa varchar(255) DEFAULT NULL)
ENGINE = INNODB,
CHARACTER SET utf8mb4,
COLLATE utf8mb4_0900_ai_ci;

SET NAMES 'utf8';
-----------------------------------------------
INSERT INTO test1(aa) VALUES
('amelie'),
('amélie');

------------------------------------------------

SELECT DISTINCT aa FROM test1;

1 个答案:

答案 0 :(得分:1)

这很可能是您选择的COLLATION的行为。 您可以使用COLLATE utf8mb4_bin解决此默认行为:

SELECT DISTINCT aa COLLATE utf8mb4_bin FROM test1;

或使用BINARY:

SELECT DISTINCT(BINARY aa) as aa FROM test1;

您还可以使用二进制COLLATE创建表:

CREATE TABLE test1 (aa varchar(255) DEFAULT NULL) ENGINE = INNODB, CHARACTER SET utf8mb4, COLLATE utf8mb4_bin;