为什么 Mysql 中的两个字符串相同?
Why two strings in Mysql are the same?
我在 MySQL 中遇到问题:'amelie'
和 'amélie'
在 mysql 中是否相同?
当我使用 distinct
作为 table 时,它们是相同的。
我用的是MySQL8.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;
这很可能是您选择的 COLLATION 的行为。
您可以使用 COLLATE utf8mb4_bin:
解决此默认行为
SELECT DISTINCT aa COLLATE utf8mb4_bin FROM test1;
或使用二进制:
SELECT DISTINCT(BINARY aa) as aa FROM test1;
您还可以使用二进制 COLLATE 创建 table:
CREATE TABLE test1 (aa varchar(255) DEFAULT NULL) ENGINE = INNODB, CHARACTER SET utf8mb4, COLLATE utf8mb4_bin;
我在 MySQL 中遇到问题:'amelie'
和 'amélie'
在 mysql 中是否相同?
当我使用 distinct
作为 table 时,它们是相同的。
我用的是MySQL8.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;
这很可能是您选择的 COLLATION 的行为。 您可以使用 COLLATE utf8mb4_bin:
解决此默认行为SELECT DISTINCT aa COLLATE utf8mb4_bin FROM test1;
或使用二进制:
SELECT DISTINCT(BINARY aa) as aa FROM test1;
您还可以使用二进制 COLLATE 创建 table:
CREATE TABLE test1 (aa varchar(255) DEFAULT NULL) ENGINE = INNODB, CHARACTER SET utf8mb4, COLLATE utf8mb4_bin;