首页 > 数据库 >mysql 8.0.32 视图中文无法过滤

mysql 8.0.32 视图中文无法过滤

时间:2023-06-13 19:07:39浏览次数:51  
标签:subset 8.0 32 derived 视图 outside ASCII condition character

mysql8.0.32 视图中 采用union all 或union合并获取结果时, 含有中文的字段过滤失效

会提示 类似如下的信息

Warning | 1300 | Cannot convert string '\xE5\xAE\xA2\xE6\x88\xB7...' from utf8mb4 to binary

这是此版本bug. 在对派生表使用where条件时,如果对应值超过128(ascii值),对应字符转化就会失效,索引查询不到数据. 

bugfix说明如下:

When cloning a condition to push down to a derived table,
    characters in strings representing conditions were converted to
    utfmb4 correctly only for values less than 128 (the ASCII
    subset), and code points outside the ASCII subset were converted
    to invalid characters, causing the resulting character strings
    to become invalid. For derived tables without UNIONS, this led
    to problems when a column name from the derived table used
    characters outside the ASCII subset, and was used in the WHERE
    condition. For derived tables with UNIONS it created problems
    when a character outside the ASCII subset was present in a WHERE
    condition.

    We fix these issues by initializing the string used in such
    cases for representing the condition to the connection character
    set.

修正方法:

设定 优化规则 optimizer_switch 其中 derived_condition_pushdown 修改为off

mysql 8.0.32 视图中文无法过滤_cannot convert



标签:subset,8.0,32,derived,视图,outside,ASCII,condition,character
From: https://blog.51cto.com/u_8026776/6471955

相关文章

  • esp32 arduino 支持eeprom保存配置参数
    完整代码如下#include<WiFi.h>#include<WiFiUdp.h>#include"WString.h"#include"EEPROM.h"voidsendSerial1(Stringstr,booladdline=true);typedefvoid(*funcSlice)();#defineROM_STRING_SIZE16#defineROM_INT_SIZE......
  • Sql 视图
    1.定义:视图是由多张实体表联合查询后,组成的一张不含任何数据的虚拟表,存在表名,字段列。2.为什么使用视图:视图保存的是select语句,可以简化用户操作,将频繁使用的查询语句保存成视图,可以不用每次都重新写Sql语句。在创建好视图后,可以将视图和其他实体表一样,用Select语句进行查询数据......
  • 升级Ubuntu18.04上的gitlab 13.7.3
    1、查看gitlab版本,在首页后面添加/help就可以看到了也可以用命令查看cat/opt/gitlab/embedded/service/gitlab-rails/VERSION2、gitLab版本升级,需要按照官方的指示版本进行依次升级8.11.Z->8.12.0->8.17.7->9.5.10->10.8.7->11.11.8->12.0.12->12.1.17->12.10.1......
  • 成功解决错误 CS8400 功能“创建目标类型对象”在 C# 8.0 中不可用。请使用语言版本 9
    成功解决错误CS8400功能“创建目标类型对象”在C#8.0中不可用。请使用语言版本9.0或更高版本。https://blog.csdn.net/RoseJFrame/article/details/129855616在使用ScottPlot例程中MultipleHistograms图表代码时遇到的问题错误CS8400功能“创建目标类型对象”在......
  • STM32F429 Discovery开发板应用:使用FreeRTOS队列+DMA双缓存实现串口数据接收
     参考帖子:https://blog.csdn.net/freedompoi/article/details/122350866目前想要实现STM32F4自带的DMA双缓冲区,尝试过一版,结果不能预期,就使用了RxHalfCplt和RxCplt去实现DMA双缓冲区的效果。现在有时间了,又重新实现STM32F4自带的DMA双缓冲区,作为参考。 MCU:STM32F429ZIT6......
  • ORACLE如何找出视图依赖的对象和视图嵌套层数
    之前写过一篇文章“SQLServer如何找出视图依赖的对象和视图嵌套层数”,这里我介绍一下Oracle数据库中如何找出视图的依赖对象以及视图嵌套层数关系。主要通过DBA_DEPENDENCIES这个系统视图(这个系统视图中包含有对象的依赖关系数据)。另外,我们使用了Oracle的树形查询(层级查询)来展示......
  • CH32--裸机系统实现多任务
    在ram和flash资源足够的芯片中,我们通常通过跑操作系统来实现多任务,但此方法有个弊端,那就是对ram要求高,那么对于比如003这种只有2K ram的小容量芯片可能就不太够用了。这时就需要裸机来实现多任务了,方法如下:在裸机中,通常都是在一个while循环中,通过判断相应的标志位,来按照顺序......
  • Codeforces Round #320 (Div. 2) - D. "Or" Game
    原题链接D."Or"GametimelimitpertestmemorylimitpertestinputoutputYouaregiven n numbers a1, a2, ..., an.Youcanperformatmost k operations.For......
  • RHCE8.0课程收官,赶紧来一场精彩的学习之旅!
    课程介绍该课程是红帽RHCSA和RHCE课程和考前辅导的套包课程。红帽系统管理是针对不了解Linux并需要核心红帽企业Linux技能的IT专业人员而设计的。学完这个课程后,学员将能够执行安装操作,建立网络连接,管理物理存储器,掌握容器的使用,使用Ansible自动执行Linux系统管理任务;此外本课......
  • Codeforces Round #232 (Div. 2)-B. On Corruption and Numbers
    原题链接B.OnCorruptionandNumberstimelimitpertestmemorylimitpertestinputoutputAlexey,amerryBerlandentrant,gotsickofthegrayrealityandhezealouslywa......