表结构:
CREATE TABLE `texts` (
`letter` VARCHAR(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`text` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
INDEX (`letter` ASC),
INDEX (`text` ASC)
)
ENGINE InnoDB
CHARACTER SET utf8
COLLATE utf8_general_ci;
样本数据:
INSERT INTO `texts`
(`letter`, `text`)
VALUES
('a', 'Apple'),
('ā', 'Ābols'),
('b', 'Bull'),
('c', 'Cell'),
('č', 'Čakste');
我正在执行的查询:
SELECT DISTINCT `letter` FROM `texts`;
预期成绩:
`letter`
a
ā
b
c
č
实际结果:
`letter`
a
b
c
我尝试过很多 utf8 排序规则 (utf8_[bin|general_ci|unicode_ci],
utf8mb4_[bin|general_ci|unicode_ci] 等),它们都不起作用。如何
解决这个问题?
编辑以澄清:我想要的不仅仅是获得所有字母
出,而且还按照我在预期中指定的顺序获取它们
结果。utf8_bin
获取所有字母,但它们按顺序排列
错误的方式 - 扩展拉丁字符仅在所有基本字符之后跟随
拉丁字符(例如:a、b、c、ā、č)。另外,我的实际表是
using 每个字母有很多文本,因此分组是必须的。