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



我在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;

这很可能是您选择的整理的行为。您可以使用Colate UTF8MB4_BIN:

解决此默认行为
SELECT DISTINCT aa COLLATE utf8mb4_bin FROM test1;

或使用二进制:

SELECT DISTINCT(BINARY aa) as aa FROM test1;

您也可以使用二进制汇总创建表:

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

最新更新