甚至“ ch”也显示为两个字母,在捷克语中它被视为一个字母,并且其字母顺序在H字母之后(因此正确的顺序是a,b,c,d,e,f,g,h,ch,i, j(我跳过了一些国家字符)但是当我这样做时
包含以ch Im开头的单词的列上的substr(colname,1,1)仅获得“ C”
此sql:SELECT SUBSTRING(title,1,1)AS title_truncated FROM节点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).
btw数据库正在使用utf8_czech_ci
解决方法:
Ch本身不是Unicode中的字符,而是一个digraph.
因此,数据库排序规则似乎无法正确映射差异. @Ladislav在评论中说的内容以及该mySQL internals discussion,中的用户似乎都支持这一点.
您可能需要手动解决此问题,例如在您的示例中,使用IF子句测试“ Ch”的存在,并在这种情况下返回两个字符.
参考号:utf8_czech_ci
collation table (mySQL 6)
标签:collation,mysql,sql 来源: https://codeday.me/bug/20191023/1912990.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。