即使“ch”显示为两个字母,在捷克语中它被视为一个字母并且其在字母表中的顺序在 H 字母之后(因此正确的顺序是 a,b,c,d,e,f,g,h,ch ,i,j(我跳过了一些国家字符)。但是当我这样做时 包含以 ch 开头的单词的列上的 substr (colname, 1, 1) 我只得到“C”
此 sql:SELECT SUBSTRING(title, 1, 1) AS title_truncated FROM node node WHERE node.type in ('termin') GROUP BY title_truncated ORDER BY title_truncated ASC"
返回:A、B、C、D、E、F、G、H、I、J(所以没有 ch)。
顺便说一句,数据库正在使用 utf8_czech_ci
最佳答案
Ch
在 Unicode 中本身不是一个字符,它是一个 digraph .
因此,数据库整理似乎不可能正确映射差异。 @Ladislav 在评论中所说的内容,以及此 mySQL internals discussion, 中的用户似乎支持这一点。
您可能需要手动解决此问题,例如在您的示例中,使用 IF
子句测试是否存在“Ch”,如果是,则返回两个字符。
关于mysql - 捷克语 "ch"字母如何存储在 mysql 中以及如何使用 substr 获取它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5281750/