当前位置: 首页 > 面试题库 >

排序规则的非法混合MySQL错误

黎震博
2023-03-14
问题内容

在处理大量数据时出现此奇怪的错误…

Error Number: 1267

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

SELECT COUNT(*) as num from keywords WHERE campaignId='12' AND LCASE(keyword)='hello again 昔 ã‹ã‚‰ ã‚ã‚‹ å ´æ‰€'

我该怎么解决?我可以以某种方式转义字符串,以免发生此错误,还是我需要以某种方式更改表编码,如果是,应该将其更改为什么?


问题答案:
SET collation_connection = 'utf8_general_ci';

然后为您的数据库

ALTER DATABASE your_database_name CHARACTER SET utf8 COLLATE utf8_general_ci;

ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

MySQL有时会毫无理智地潜入瑞典。



 类似资料:
  • 问题内容: 查看我的产品日志后,我提到了一些错误: Alghout我在cfg教义下拥有UTF-8默认值: 看来我所有的MySQL表都在其中,所以我的问题是: 我可以为所有表手动将排序规则更改为,而没有任何复杂性/注意事项吗? 问题答案: 了解以下定义会有所帮助: 甲 字符编码 信息的每个符号是如何以二进制表示(并因此存储在计算机)。例如,符号(U + 00E9,拉丁小字母E急性)被编码为在UTF-

  • 问题内容: 刚刚从上一个问题得到了这个答案,就可以了! 但是当我在其中添加额外的位时会出现以下错误: 文档#1267-操作’=’的排序规则(latin1_swedish_ci,IMPLICIT)和(latin1_general_ci,IMPLICIT)的非法混合 该表是: 问题答案: 检查每个表的排序规则类型,并确保它们具有相同的排序规则。 之后,还要检查您在操作中使用的每个表字段的排序规则类型。

  • 问题内容: MySql上的错误消息: 我浏览了其他几篇文章,但无法解决此问题。受影响的部分与此类似: 我正在使用的存储过程是这样的: 我在用php测试,但是SQLyog给出了相同的错误。我还测试了重新创建整个数据库,但效果不佳。 任何帮助都感激不尽。 问题答案: 存储过程参数的默认排序规则为并且您不能混合排序规则,因此有四个选项: 选项1 :添加到您的输入变量中: 选项2 :在条款中添加: 选项3

  • 混合配置的规则项之间的叠加使用是通过数据源名称和表名称关联的。 如果前一个规则是面向数据源聚合的,下一个规则在配置数据源时,则需要使用前一个规则配置的聚合后的逻辑数据源名称; 同理,如果前一个规则是面向表聚合的,下一个规则在配置表时,则需要使用前一个规则配置的聚合后的逻辑表名称。 配置项说明 <beans xmlns="http://www.springframework.org/schema/b

  • 混合配置的规则项之间的叠加使用是通过数据源名称和表名称关联的。 如果前一个规则是面向数据源聚合的,下一个规则在配置数据源时,则需要使用前一个规则配置的聚合后的逻辑数据源名称; 同理,如果前一个规则是面向表聚合的,下一个规则在配置表时,则需要使用前一个规则配置的聚合后的逻辑表名称。 配置项说明 # 数据源配置 # 数据源名称,多数据源以逗号分隔 spring.shardingsphere.datas

  • 混合配置的规则项之间的叠加使用是通过数据源名称和表名称关联的。 如果前一个规则是面向数据源聚合的,下一个规则在配置数据源时,则需要使用前一个规则配置的聚合后的逻辑数据源名称; 同理,如果前一个规则是面向表聚合的,下一个规则在配置表时,则需要使用前一个规则配置的聚合后的逻辑表名称。 配置项说明 dataSources: # 配置真实存在的数据源作为名称 write_ds: # ...省略