jjzjj

collation

全部标签

MySQL - 什么是 utf8_general_mysql500_ci?

我刚刚看到MySQL5.5提供了utf8_general_mysql500_ci作为排序规则。与utf8_general_ci等其他排序规则有什么区别?我应该更好地使用utf8_general_mysql500_ci吗? 最佳答案 根据ChangesinMySQL5.5.21记录:Newutf8_general_mysql500_cianducs2_general_mysql500_cicollationshavebeenaddedthatpreservethebehaviorofutf8_general_cianducs2_gen

mysql - 如何更改Mysql的连接排序规则

如何更改mysql数据库的连接排序规则?我在ubuntu14中使用Mysqlworkbench5.5和mysql5.5。当我执行存储过程时,出现错误:ErrorCode:1267.Illegalmixofcollations(utf8_general_ci,IMPLICIT)and(utf8_unicode_ci,IMPLICIT)foroperation'='我在网上搜索了一下,有一个临时的解决方案,待修改COLLATEutf8_unicode_ci;在存储过程中。但我想在将来为所有存储过程解决这个问题。我找到了SHOWVARIABLESLIKE'collation%';返回这个。c

sql - MySQL 将 latin1 数据转换为 UTF8

我使用LOADDATAINFILE将一些数据导入到MySQL数据库中。表本身和列都使用的是UTF8字符集,但是数据库默认的字符集是latin1。因为数据库默认的字符类型是latin1,而我使用的LOADDATAINFILE没有指定字符集,所以解释文件为latin1,即使文件中的数据是UTF8。现在我的UTF8列中有一堆编码错误的数据。我找到了thisarticle这似乎解决了一个类似的问题,即“UTF8insertedincp1251”,但我的问题是“Latin1insertedinUTF8”。我尝试在那里编辑查询以将latin1数据转换为UTF8,但无法正常工作。数据要么是一样的,要

mysql - mySQL 中的非法混合排序规则

我需要将一个列从一个表转移到另一个表。源表具有与目标表不同的排序规则(latin1_general_ci和latin1_swedish_ci)。我用UPDATEtargetLEFTJOINsourceONtarget.artnr=source.artnrSETtarget.barcode=source.barcode我得到一个“非法的归类组合”。有什么快速修复方法可以在不更改任何一个表的情况下使它正常工作?我尝试使用CONVERT和COLLATE以UTF-8运行整个操作,但这没有帮助。“条形码”仅包含数字数据(即使它们都是VARCHAR),因此无论哪种方式都不用担心排序规则。我只需要这

mysql - 操作 '=' 的排序规则 (utf8mb4_unicode_ci,EXPLICIT) 和 (utf8_general_ci,COERCIBLE) 的非法混合

好吧,我放弃了。我已经进入这个错误2天了,我需要帮助。免责声明:我将需要帮助来改进这个问题,并会尽力很好地描述手头的问题,到目前为止我为解决该问题所做的工作,并分享我已阅读的博客文章和文档寻找解决方案。问题(也在上下文中提出):Sothequestionis,whydoesthesamequerybehavedifferentlywhenrunfromRailsinsteadoffromthemysqlcommandline?Specifically,whereis"(utf8_general_ci,COERCIBLE)"comingfrom?问题:Autoresponder.find

java - 在Java中对阿拉伯语单词进行排序

我有一个阿拉伯语单词列表,我想对其进行排序。我尝试过使用不同区域设置的标准Collat​​or(如英语或法语,但希望不大),我什至创建了自己的RuleBasedCollat​​or,但无济于事。显然,默认排序依赖于unicode值顺序,这在许多情况下都有效,但显然不适用于此。按照javadoc的说明,RuleBasedCollat​​or需要一个字符串,该字符串按照您希望的排序顺序指定字符。我使用thistable中的unicode代码创建了以下字符串:StringarabicLetters="阿拉伯字母根据它们在单词中的位置可以有四种形式。因此,我在上面的规则字符串中所做的是使每个字

MYSQL中的COLLATE

概念:COLLATE含义核对、校对CREATETABLE`table1`(`id`bigint(20)unsignedNOTNULLAUTO_INCREMENT,`field1`textCOLLATEutf8_unicode_ciNOTNULLCOMMENT'字段1',`field2`varchar(128)COLLATEutf8_unicode_ciNOTNULLDEFAULT''COMMENT'字段2',PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COLLATE=utf8_unicode_ciCOMMENT'测试表'; mysql

【MySQL】报错1267 - Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPL

问题记录一次sql语句执行错误:leftjoin表会出现Illegalmixofcollations(utf8_general_ci,IMPLICIT)and(utf8_croatian_ci,IMPLICIT)foroperation'='错误.这是由于表的编码格式不一致例如某个表的字符编码为utf8_general_ci而关联表的字符编码为utf8_croatian_ci导致当前错误!解决方案解决方案:让关联表的字符编码一致1.修改表中所有字符编码ALTERTABLE表名CONVERTTOCHARACTERSETutf8mb4COLLATEutf8_general_ci;2.修改表的字符编

java - 在哪里可以找到一组特定的字符串相等性比较规则?

我们都知道使用String的equals()方法进行相等比较会失败得很惨。相反,应该使用Collator,像这样://weneedtodetectUserInterfacelocalesomehowLocaleuiLocale=Locale.forLanguageTag("da-DK");//SettingupcollatorobjectCollatorcollator=Collator.getInstance(uiLocale);collator.setStrength(Collator.SECONDARY);collator.setDecomposition(Collator.CA

Java排序规则忽略空格

我最近意识到,Java排序规则似乎忽略了空格。我有以下术语的列表:AmmanJostAmmannHeinrichAmmannerJosefBärWalterBareWernerBarrBurtBarraudMaurice上面的顺序反射(reflect)了德国所需的顺序,即考虑到空间。然而,JavaCollat​​ion使用Collatorcollator=Collator.getInstance(Locale.GERMANY);Collections.sort(values,collator);给我以下命令:AmmanJostAmmannerJosefAmmannHeinrichBar