【日常总结】mybatis-plus WHERE BINARY 中文查不出来

news2024/10/2 22:19:51

目录

一、场景

二、问题

三、原因

四、解决方案

五、拓展(全表全字段修改字符集一键更改)

准备工作:做好整个库备份

1. 全表一键修改

Stage 1:运行如下查询

Stage 2:复制sql语句

Stage 3:执行即可

2. 全字段一键修改 

Stage 1:运行如下查询

Stage 2:复制sql语句

Stage 3:执行即可

注意事项:


一、场景

  • mysql 5.7.28

  • mybatis-plus

  • spring boot 2.5.4

  • navicate 15

二、问题

        英文查询正常,中文查询结果集为0

 

三、原因

        mybatis-plus 使用 WHERE BINARY查询 ,字符集不统一(数据库,表,字段),导致中文无法查询出来

四、解决方案

  • 需要统一为:  utf8mb4

  • 排序为: utf8mb4_general_ci

# 说明,替换下面3个参数即可
# database_name :数据库名
# table_name:表名
# column_name:字段名

# 修改库字符集

ALTER DATABASE `database_name` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

# 修改表

ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;


# 修改表中字段

ALTER TABLE `table_name` MODIFY COLUMN `column_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

  • 注意:如果修改字符集后,任然查不出来,需要将中文字符复制进去保存改条数据,再查询验证

五、拓展(全表全字段修改字符集一键更改)

准备工作做好整个库备份

1. 全表一键修改

Stage 1:运行如下查询
SELECT
	DISTINCT
	table_schema,
	table_name,
	character_set_name,
	collation_name,
	CONCAT('ALTER TABLE ', table_schema, '.', table_name, ' CONVERT TO CHARACTER SET \'', character_set_name, '\' COLLATE \'', collation_name, '\';') '表原字符集SQL',
	CONCAT('ALTER TABLE ', table_schema, '.', table_name, ' CONVERT TO CHARACTER SET \'utf8mb4\' COLLATE \'utf8mb4_general_ci\';') '表需修改字符集SQL'
FROM
	information_schema.COLUMNS 
WHERE TABLE_SCHEMA NOT IN ('mysql','performance_schema','sys','information_schema','mysql_ha','mysql_db_monitor')
	AND COLLATION_NAME IS NOT NULL 
	AND COLLATION_NAME != 'utf8mb4_general_ci';
Stage 2:复制sql语句

Stage 3:执行即可

2. 全字段一键修改 

Stage 1:运行如下查询
SELECT
	TABLE_SCHEMA '数据库',
	data_type '数据类型',
	TABLE_NAME '表',
	COLUMN_NAME '字段',
	CHARACTER_SET_NAME '原字符集',
	COLLATION_NAME '原排序规则',
	CONCAT(
		'ALTER TABLE ',
		TABLE_SCHEMA, '.', TABLE_NAME,
		' MODIFY COLUMN ',
		COLUMN_NAME,
		' ',
		COLUMN_TYPE,
		' CHARACTER SET ', CHARACTER_SET_NAME, ' COLLATE ', COLLATION_NAME, 
		( CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END ),
		( CASE WHEN COLUMN_COMMENT = '' THEN ' ' ELSE concat( ' COMMENT''', COLUMN_COMMENT, '''' ) END ),
		';' 
	) '字段原字符集SQL',
	CONCAT(
		'ALTER TABLE ',
		TABLE_SCHEMA, '.', TABLE_NAME,
		' MODIFY COLUMN ',
		COLUMN_NAME,
		' ',
		COLUMN_TYPE,
		' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci',
		( CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END ),
		( CASE WHEN COLUMN_COMMENT = '' THEN ' ' ELSE concat( ' COMMENT''', COLUMN_COMMENT, '''' ) END ),
		';' 
	) '字段需修正字符集SQL' 
FROM information_schema.`COLUMNS` 
	WHERE 1=1
-- 	AND COLLATION_NAME != 'utf8mb4_general_ci'
	AND COLUMN_NAME != 'id'
	AND data_type not in('bigint','int','datetime','decimal','tinyint','double','float','json')	
	AND TABLE_SCHEMA NOT IN ('mysql','performance_schema','sys','information_schema','mysql_ha','mysql_db_monitor');
Stage 2:复制sql语句
Stage 3:执行即可

注意事项:

1. 有些字段是关键字,无法执行,报错到该行注释即可

2. 有点字段类型不能设置字符集,报错到该行注释即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1293564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Volumetric Lights 2 HDRP

高清晰度渲染管道,包括先进的新功能,如半透明阴影图和直接灯光投射加上许多改进。 插件是一个快速,灵活和伟大的前瞻性光散射解决方案的高清晰度渲染管道。只需点击几下,即可改善场景中的照明视觉效果。 兼容: 点光源 聚光灯 碟形灯 矩形灯 通过覆盖摄像机周围大面积区域的…

05 JQuery基础入门

文章目录 一、jQuery介绍1. 简介2. 版本介绍3. 相关网站4. HTML引入方式 二、基础语法1. 顶级对象$2. 与DOM对象转化3. 选择器4. 事件5. 动画6. 修改样式7. 修改属性 一、jQuery介绍 1. 简介 jQuery是JavaScript编程语言底层库,它是一个快速,简洁的Jav…

JavaScript <关于逆向RSA非对称加密算法的案例(附原代码)>--案例(五)

前言: 趁热打铁,标记一下RSA的算法逆向...第二篇会有详解(本篇重在过程) 正文: 废话不说,直接分析步骤图: 到了这里,可以看到在登录的时候,需要验证码(本篇不教反验证码) 下面是正题--->逆他的pwd(密码) 总结: 问题:怎么确定一个密文数据是基于什么算法做出来的呢? 答:…

python 涉及opencv mediapipe知识,眨眼计数 供初学者参考

基本思路 我们知道正面侦测到人脸时,任意一只眼睛水平方向上的两个特征点构成水平距离,上下两个特征点构成垂直距离 当头像靠近或者远离摄像头时,垂直距离与水平距离的比值基本恒定 根据这一思路 当闭眼时 垂直距离变小 比值固定小于某一个…

Abaqus基础教程--胶合失效仿真

胶合是电子行业中常见的连接方式,abaqus中常用cohesive单元或者cohesive接触两种方法进行胶合失效仿真,这两种方式操作方法有所差别,但结果一般大同小异。 本例模型比较简单,建模过程从略,使用静态分析,使…

python基于ModBusTCP服务端的业务实现特定的client

python实现ModBusTCP协议的client是一件简单的事情,只要通过pymodbus、pyModbusTCP等模块都可以实现,本文采用pymodbus。但要基于ModBusTCP服务端的业务实现特定的client,那得看看服务端是否复杂。前面系列文章,我们学习了对服务端…

【vtkWidgetRepresentation】第五期 vtkLineRepresentation

很高兴在雪易的CSDN遇见你 内容同步更新在公众号“VTK忠粉” 【vtkWidgetRepresentation】第五期 一条直线的交互 前言 本文分享vtkLineRepresentation,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会继续努力分享&#xf…

Python---继承

1、什么是继承 我们接下来来聊聊Python代码中的“继承”:类是用来描述现实世界中同一组事务的共有特性的抽象模型,但是类也有上下级和范围之分,比如:生物 > 动物 > 哺乳动物 > 灵长型动物 > 人类 > 黄种人 从哲学…

Go--协程

协程 协程是Go语言最大的特色之一。 1、协程的概念 协程并不是Go发明的概念,支持协程的变成语言有很多。Go在语言层面直接提供对协程的支持称为goroutine。 1.1 基本概念 进程 进程是应用程序启动的实例,每个进程都有独立的内存空间,不同…

DSP外部中断笔记

中断原理 三部分 注意 ,外部中断使能,PIE使能,CPU中断使能 外部中断有7个,PIE有12组,一个组有8个中断复用。只有一个CPU中断可执行。 外部中断原理 1、外部中断概述 外部中断结构图 外部中断XINT1对应的是0到31GPI…

<IBM Websphere Portal>《关于IBM的Portal和WAS的说明和总结(自用笔记)》

《关于IBM的Portal和WAS的简单总结》 1 架构1.1 说明 2 常见问题2.1 LDAP链接问题2.2 启动脚本建议2.3 日志大小保留建议2.4 启动垃圾回收日志 3 日志位置 1 架构 应用服务部署架构如上: 👉192.168.66.1服务器运行的server进程有:dmgr、nodea…

360压缩安装一半不动了怎么办?

360压缩软件是我们常用的压缩软件,但是常常会遇到压缩安装到一半停止的情况,下面提供了一些可能的原因和解决办法,大家可以进行尝试~ 方法一:关闭防火墙和杀毒软件 有时候,防火墙和杀毒软件可能会阻止360压缩的安装过…

为什么 SQL 不适合图数据库

背景 “为什么你们的图形产品不支持 SQL 或类似 SQL 的查询语言?” 过去,我们的一些客户经常问这个问题,但随着时间的推移,这个问题变得越来越少。 尽管一度被忽视,但图数据库拥有无缝设计并适应其底层数据结构的查询…

Docker实战笔记 二 Springboot Idea 插件打包

1.上传springboot的jar rootcenots-7.5:/home/code#rz -----app.jar 2.编辑Dockerfile rootcenots-7.5:/home/code#vi Dockerfile内容 FROM openjdk:8 # 作者 MAINTAINER nnd # 声明要使用的端口 EXPOSE 8080 # VOLUME 指定了临时文件目录为/tmp。# 将本地包添加到容器中并…

服装收银系统哪个最好用

服装订货系统哪个最好,可能没有一个标准的答案,但至少可以从以下几点进行选择: 1、数据批量操作:服装到货都是一批一批,如果能将条码进行批量导入,这样在这里耗去的时间就少很多了,剩下的是时间…

在Windows 11中更改文件的扩展名有几种办法,个别办法可以批量修改

本文介绍了如何在Windows 11中更改文件的文件扩展名。 用简单的方法更改文件扩展名 对于大多数人来说,在Windows 11中更改文件扩展名的最简单方法是在更改文件名的同一个地方进行更改。然而,Windows默认情况下不显示文件扩展名,所以在我们可…

【Flink系列三】数据流图和任务链计算方式

上文介绍了如何计算并行度和slot的数量,本文介绍Flink代码提交后,如何生成计算的DAG数据流图。 程序和数据流图 所有的Flink程序都是由三部分组成的:Source、Transformation和Sink。Source负责读取数据源,Transformation利用各种…

西南科技大学C++程序设计实验八(多态一)

一、实验目的 1. 掌握多态性的分类; 2. 动态多态性-虚函数; 3. 理解纯虚函数的概念。 二、实验任务 1.分析以下程序,改正程序错误,写出程序输出结果,并按要求: (1)思考:输出结果中为什么类A是8个字节,类B是12个字节?分析虚函数的类的结构特点 A的字节大小为:…

基于JAVA+SpringBoot+微信小程序的宠物领养平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 随着人们生活水平的提…

VS2015编译GDAL3.2.0+opencl+C#

参考借鉴https://www.cnblogs.com/litou/p/15004877.html 参考借鉴https://www.cnblogs.com/xiaowangba/p/6313903.html 参考借鉴gdal、proj、geos、sqlite等在VS2015下编译和配置_vs2015编译sqlite3-CSDN博客 参考借鉴Windows下GDAL3.1.2编译 (VS2015)_gdal windows编译-CS…