mysql查询时间区间的数据
前言最近在做项目涉及到Mysql的复杂日期查询,日期查询其实在数据库中查询其实还是用得挺多的,比如查询开始日期到结束日期的区间信息,查询日期小于有效日期的信息,查询当天的日期,明天的日期,做比较等。查...
2024.11.15目前数据库字符集统一用的utf8,由于项目需要,引进了表情,但是utf8mb5才支持表情字符,所以需统一修改数据库字符集,下面介绍批量修改数据库字符集的办法。
修正顺序是字段级别>表级别>库级别。
一、批量修改整个数据库字符集(字段级别)统一将字符字符集变成utf8_general_ci
select TABLE_SCHEMA ‘数据库‘, TABLE_NAME ‘表‘, COLUMN_NAME ‘字段‘, CHARACTER_SET_NAME ‘原字符集‘, COLLATION_NAME ‘原排序规则‘, concat( ‘ALTER TABLE ‘, TABLE_SCHEMA, ‘.‘, TABLE_NAME, ‘ MODIFY COLUMN ‘, COLUMN_NAME, ‘ ‘, COLUMN_TYPE, ‘ CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;‘ ) ‘修正SQL‘ FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = ‘lcpdb1‘ AND CHARACTER_SET_NAME = ‘utf8‘;utf8是我demo的模糊匹配排序规则,这里需要替换为你数据库中需要替换的字段的排序规则,utf8mb4设置的是替换的字符集,utf8mb4_general_ci设置的是替换的排序规则,可以换为需要修正为什么标准
二、批量修改整个数据库字符集(表级别)1、创建批量修改语句
修改单个表的字符集的命令是:alter table 表名 convert to character set utf8mb4 collate utf8mb4_bin;
创建修改语句的命令是:
select TABLE_SCHEMA ‘数据库‘, TABLE_NAME ‘表‘, TABLE_COLLATION ‘原排序规则‘, concat( ‘ALTER TABLE ‘, TABLE_SCHEMA, ‘.‘, TABLE_NAME, ‘ COLLATE=utf8mb4_general_ci;‘ ) ‘修正SQL‘ FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = ‘lcpdb1‘ AND TABLE_COLLATION = ‘utf8_general_ci‘;将上面的修正SQL语句批量复制,然后全部执行。
三、批量修改多个数据库字符集(库级别)1、找出MySQL实例中字符集不是utf8mb4的数据库
select * FROM information_schema.`SCHEMATA` WHERE DEFAULT_COLLATION_NAME‘utf8_general_ci‘;2、批量修改
select SCHEMA_NAME ‘数据库‘, DEFAULT_CHARACTER_SET_NAME ‘原字符集‘, DEFAULT_COLLATION_NAME ‘原排序规则‘, concat( ‘ALTER DATABASE ‘, SCHEMA_NAME, ‘ CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;‘ ) ‘修正SQL‘ FROM information_schema.`SCHEMATA` WHERE DEFAULT_CHARACTER_SET_NAME=‘utf8‘;觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
前言最近在做项目涉及到Mysql的复杂日期查询,日期查询其实在数据库中查询其实还是用得挺多的,比如查询开始日期到结束日期的区间信息,查询日期小于有效日期的信息,查询当天的日期,明天的日期,做比较等。查...
2024.11.15问题描述有一次遇到这样一个面试题,说如果一个表中没有主键,如何找到里面重复的数据?表数据如下:表结构如下:针对以上问题,有以下几种解决方案解决方案1. 使用 GROUP BY 分组查询法利用 GROU...
2024.11.15一、前言我们在操作大型数据表或者日志文件的时候经常会需要写入数据到数据库,那么最合适的方案就是数据库的批量插入。只是我们在执行批量操作的时候,一次插入多少数据才合适呢?假如需要插入的数据有百万条,那么...
2024.11.15概述今天主要分享MySQL数据库列的增删改实现方法,比较基础,大家可以简单看看,也做个备忘!新建表user_infoCREATE TABLE user_info(id INT NOT NULL PRI...
2024.11.13概述最近在修改数据库编码时发现超出单行最大长度,下面记录下解决过程,以作备忘!> 1118 - Row size too large. The maximum row size for the use...
2024.11.14