首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

操作'='的非法混合排序(utf8_unicode_ci,IMPLICIT)和(utf8_general_ci,IMPLICIT)

这两个排序规则都是MySQL中用于字符和Unicode字符的排序规则。其中,utf8_unicode_ci是基于Unicode标准的排序规则,可以用于排序Unicode字符,如中文、日文等。而utf8_general_ci则是基于ASCII标准的排序规则,只能用于排序ASCII字符。

在MySQL中,默认的排序规则是utf8_general_ci,但是如果你在创建表或者使用ALTER TABLE语句时,指定了使用utf8_unicode_ci排序规则,那么MySQL就会使用utf8_unicode_ci来排序字符。

非法混合排序(utf8_unicode_ci,IMPLICIT)和(utf8_general_ci,IMPLICIT)是两种不同的排序规则,它们都用于字符和Unicode字符的排序,但是它们不能同时使用,因为它们是不同的排序规则,如果同时使用,可能会导致排序结果不正确。

在MySQL中,可以使用COLLATE子句来指定排序规则,例如:

代码语言:txt
复制
SELECT * FROM my_table ORDER BY col COLLATE utf8_unicode_ci;

这个语句会按照col列中的字符排序,并且使用utf8_unicode_ci排序规则。如果你想要按照col列中的Unicode字符排序,并且使用utf8_general_ci排序规则,可以使用以下语句:

代码语言:txt
复制
SELECT * FROM my_table ORDER BY col COLLATE utf8_general_ci;

这个语句会按照col列中的Unicode字符排序,并且使用utf8_general_ci排序规则。

需要注意的是,在MySQL中,不同的排序规则可以同时使用,但是它们之间是独立的,不能相互影响。例如,如果你在创建表时指定了使用utf8_general_ci排序规则,然后又使用COLLATE子句指定了使用utf8_unicode_ci排序规则,那么MySQL会先使用utf8_general_ci排序规则,然后再使用utf8_unicode_ci排序规则。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • mysql: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for opera

    昨天把mysql里所有tablevarchar字段字符集,批量换成了utf8mb4/utf8mb4_unicode_ci ,以便能保存一些emoji火星文 , 结果有一个sql语句执行时,报错如下:...Illegalmixofcollations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)foroperation '= 观察了一下...END character_set_client: utf8mb4 collation_connection: utf8mb4_unicode_ci Database Collation: utf8.../mysqldump -u用户名 -p -d --add-drop-table 数据库名 > 导出文件名 注:为防止操作期间有人操作数据库,最好将所有应用暂时停机,保证操作期间db没人向其写入数据 。...导出表结构sql,然后用文本编码工具,批量把指定字符集字符串给批量清空,即:清除所有指定字符集DDL语句,全部默认用database本身字符集 接下来用 .

    991100

    MySQL Illegal mix of collations

    Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation...utf8mb4_unicode_ci utf8_general_ci 列不能混合查询 解决方法 1 统一字段 varchar 编码集,我推荐使用 utf8mb4_unicode_ci。...对比 准确性: utf8mb4_unicode_ci 是基于标准 Unicode 来排序比较,能够在各种语言之间精确排序。...性能: utf8mb4_unicode_ci 在特殊情况下,Unicode 排序规则为了能够处理特殊字符情况,实现了略微复杂排序算法。但是在绝大多数情况下发,不会发生此类复杂比较。...相比选择哪一 collation,使用者更应该关心字符集与排序规则在 db 里需要统一。 utf8mb4_general_ci 在比较排序时候更快。

    21530

    utf8字符集下比较规则

    其实每个字符集下对应着若干个比较规则(也可以翻译为排序规则或校对规则,英文是COLLATE),同一字符集下,使用不同比较规则会影响字符字段比较排序。...utf8_general_ci,日常中会用到utf8_general_ciutf8_unicode_ci,utf8_bin三种比较规则,其他比较规则基本很少会用,下面简单了解下这三种比较规则异同...而utf8_general_ciutf8_unicode_ci是不区分大小写utf8_general_ciutf8_unicode_ci对中、英文来说没有实质差别。...utf8_unicode_ci最主要特色是支持扩展,即当把一个字母看作与其它字母组合相等时。例如,在德语一些其它语言中‘ß'等于‘ss'。...utf8_general_ci相对于utf8_unicode_ci来说校对速度快,但是如果你应用有德语、法语或者俄语,建议使用utf8_unicode_ci

    1.3K21

    MySQL 字符集与排序规则

    utf8_unicode_ciutf8_general_ci 区别 当前,utf8_unicode_ci 校对规则仅部分支持 Unicode 校对规则算法。一些字符还是不能支持。...这意味着 utf8_general_ci 校对规则进行比较速度很快,但是与使用 utf8_unicode_ci 校对规则相比,比较正确性较差)。...使用 对于一种语言仅当使用 utf8_unicode_ci 排序不好时,才执行与具体语言相关utf8字符集 校对规则。...例如,对于德语法语,utf8_unicode_ci 工作很好,因此不再需要为这两种语言创建特殊 utf8 校对规则。...utf8_general_ci 也适用于德语法语,除了‘ß’等于‘s’,而不是‘ss’之外。如果你应用能够接受这些,那么应该使用 utf8_general_ci,因为它速度快。

    2.4K20

    IdentityServer(11)- 使用Hybrid Flow并添加API访问控制

    关于Hybrid Flow implicit flow 我在前一篇文章使用OpenID Connect添加用户认证中提到了implicit flow,那么它们是什么呢,它Hybrid Flow有什么不同呢...Hybrid Flow implicit flow是OIDC(OpenID Connect)协议中术语,Implicit Flow是指使用OAuth2Implicit流程获取Id TokenAccess...Token;Hybrid Flow是指混合Authorization Code Flow(OAuth授权码流程)Implici Flow。...在前一篇文章中,我们使用了OpenID Connect implicit flow。 在implicit流程中,所有的令牌都通过浏览器传输,这对于身份令牌来说是完全不错。...OpenID Connect包含一个名为“混合流”流程,它可以让我们两全其美,身份令牌通过浏览器通道传输,因此客户端可以在做更多工作之前验证它。

    1.2K40

    Scalaz(8)- typeclass:Monoid and Foldable

    所以获取一个类型Monoid实例需要实现zeroappend这两个抽象函数。实际上Monoid typeclass也就是支持了append(|+|)这么一个简单操作。...好了,单看Monoid操作会觉着没什么特别,好像不值得研究。实际上Monoid主要用途是在配合可折叠数据结构(Foldable)对结构内部元素进行操作时使用。...上面提到Monoid在可折叠数据结构里元素连续处理有着很好应用,我们先试一个例子:确定一个可折叠数据结构F[A]中元素A是否排序: def ordered(xs: List[Int]): Boolean...我们先设计一个对比数据结构: Option[(min: Int, max: Int. ordered: Boolean)], 它记录了当前元素状态,包括最小,最大,是否排序: 1 /判断xs是否是排序...append操作进行map深度合并。

    1.1K90

    Oracle、SQL ServerMySQL隐式转换异同

    view=sql-server-ver15 《见识一下SQL Server隐式转换处理不同》中介绍了一种SQL Server隐式转换案例,Oracle不同是,SQL Server隐式转换,还可能排序规则相关...,Table Scan,这就是隐式转换,导致不能使用索引场景, 测试场景2 创建一个Latin1_General_CP1_CI_AS排序规则数据库,场景1相同,测试表如下,一个字段是varchar...,场景1中相同语句,因为隐式转换,导致用了Table Scan,而此处,虽然谓词提示CONVERT_IMPLICIT(c2),但未作为Warning,而且执行计划还是使用Index Seek,路径上场景...1稍有不同, Jonathan Kehayias在这篇文章中,提到了SQL_Latin1_General_CP1_CI_ASLatin1_General_CP1_CI_AS这两种排序规则不同数据类型转换关系...隐式转换,是绿色,允许用Seek, 由此看出,SQL Server中不同排序规则对隐式转换影响可能是不同,但是SQL Server中有非常多排序规则,这就比较尴尬了,难道你能列举出所有排序规则对应隐式转换影响

    1.4K20

    04.Scala:高阶函数、隐式转换

    高阶函数 scala 混合了面向对象函数式特性,在函数式编程语言中,函数是“头等公民”,它Int、String、Class等其他类型处于同等地位,可以像其他类型变量一样被传递操作。...隐式转换隐式参数 隐式转换隐式参数是scala非常有特色功能,也是Java等其他编程语言没有的功能。我们可以很方便地利用隐式转换来丰富现有类功能。...后面在编写Akka并发编程、Spark SQL、Flink都会看到隐式转换隐式参数身影。 2.1 定义 所谓隐式转换,是指以implicit关键字声明带有单个参数方法。...implicit参数列表。...定义 在方法后面添加一个参数列表,参数使用implicit修饰 在object中定义implicit修饰隐式值 调用方法,可以不传入implicit修饰参数列表,编译器会自动查找缺省值 [!

    93220

    Scala:高阶函数、隐式转换(四)

    高阶函数 scala 混合了面向对象函数式特性,在函数式编程语言中,函数是“头等公民”,它Int、String、Class等其他类型处于同等地位,可以像其他类型变量一样被传递操作。...隐式转换隐式参数 隐式转换隐式参数是scala非常有特色功能,也是Java等其他编程语言没有的功能。我们可以很方便地利用隐式转换来丰富现有类功能。...后面在编写Akka并发编程、Spark SQL、Flink都会看到隐式转换隐式参数身影。 2.1 定义 所谓隐式转换,是指以implicit关键字声明带有单个参数方法。...implicit参数列表。...定义 在方法后面添加一个参数列表,参数使用implicit修饰 在object中定义implicit修饰隐式值 调用方法,可以不传入implicit修饰参数列表,编译器会自动查找缺省值 [!

    57820

    见识一下SQL Server隐式转换处理不同

    SQL Server刚接触,如果操作和原理上讲不对,请各位指正。...,Table Scan,这就是隐式转换,导致不能使用索引场景, 测试场景2 创建一个Latin1_General_CP1_CI_AS排序规则数据库,场景1相同,测试表如下,一个字段是varchar...,场景1中相同语句,因为隐式转换,导致用了Table Scan,而此处,虽然谓词提示CONVERT_IMPLICIT(c2),但未作为Warning,而且执行计划还是使用Index Seek,路径上场景...有知道朋友,可以介绍下, 我看了下,我们测试库,常用排序规则,是Chinese_PRC_BIN,效果场景2是相同。...其实针对这类问题,最佳方案就是能规范日常设计开发,定义合适字段类型,程序中变量使用定义相同类型,无论用什么排序规则,可以说就没隐式转换什么事儿了。

    1.1K20

    Play For Scala 开发指南 - 第9章 Json 开发

    库里,整形浮点型都使用JsNumber表示,这是一个略为糟糕设计,因为会导致JSON数据无法在多语言环境下共享。...对象就可以了,在运行时,隐式 Format 对象会自动完成编解码操作: import play.api.libs.json.Json implicit val addressFormat =...常见互转操作 将上面两个隐式 Format 对象导入到当前作用域,我们便可以自由地在 JsObject Case Class 之间进行互转: val person = Person("joymufeng...Person而是JsResult[Person],这是因为从 Json 到Case Class转换可能会发生错误,JsResult有两个子类JsSuccessJsError,分别用来处理成功失败两种情况...RFC 7159规定在为 Json 指定 Content-Type 时无需指定编码格式,并且指定编码格式是非法操作。客户端可以根据 Json 内容前4个字节自动检测出正确编码格式。

    1.5K20

    故障分析 | 命令行登录 MySQL 报 Segmentation fault 故障解决

    为了解决这个问题,查阅了很多资料,涉及终端 ncurses 编程、进程地址空间(堆栈)、cmake、gcc 编译等,遇到不少“陷阱”,好在算是比较好解决了这个问题。...: 图片 看这行内容应该是内存地址非法访问造成 crash 。...buf 被截断低 4 个字节后值,按道理应该 buf 值一样,所以会产生内存非法访问错误,导致 segmentation fault。...这时想起了编译时报警告错误(写在文章开头): implicit declaration of function ,这个警告是缺少函数原型声明导致,也就是第一次编译时候没有安装依赖 ncurse...进到相应二进制目录,执行:rm CMakeCache.txt; rm -rf CMakeFiles 3.重新 cmake make 不再出现编译警告“implicit declaration of

    1.7K20

    重新认识数据结构:从空间占用开始

    链表区分开,链表还有数据之间指针) 以null结尾字符串:除了原始字符数据,只多了一个 null 字符。...这些数据结构基本都是一些非常简单数据结构,虽然空间占用很高效,但是如果不做特殊处理,在其上操作复杂度都不低,查找都是O(n)。...当然也可以先将数据排序再存到数组里,也属于 implicit 数据结构。 为什么叫 implicit 呢,我觉得应该是原始数据中隐藏着结构,因为并没有用指针之类明显表示数据之间关系。...在这个数组上提出了两个基本操作: ? 看不下去后边等号公式可以不看,直接听我讲: rank_q(x) 返回数组位置 x 之前(包括x)值为 q 数据个数。...select_q(x) 返回第 x 个 q 数据位置。比如第 5 个 1 位置为 select_1(5)。 那么,这两个操作如何实现节点查找呢?

    57810
    领券