mysql - 捷克语 "ch"字母如何存储在 mysql 中以及如何使用 substr 获取它?

标签 mysql sql collation

即使“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”,如果是,则返回两个字符。

引用:utf8_czech_ci collation table (mySQL 6)

关于mysql - 捷克语 "ch"字母如何存储在 mysql 中以及如何使用 substr 获取它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5281750/

相关文章:

php - 从 4 个表中找到唯一的最小和最大日期 - php

sql-server-2008 - 在 MS SQL 中更改数据库的排序规则

mysql - 在 mysql 中从 select 创建表时如何指定排序规则?

mysql - 计算每条记录的不同元素并更新它们

mysql - 以非索引变量为条件时,MySQL 的 LIMIT 和 Teradata 的 TOP 之间的区别

php - 从sql中的php输入中排序日期?

javascript - 如何在查找 id 数组的 api 中等待循环完成?风 sails Js

java - 即使将字符集和排序规则更改为 utf8 后,也无法将中文、俄语等字符存储到 mysql 表中

mysql - 计票以及用户是否在 MySQL 表中投票

MySQL(XAMPP) 无法启动