![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MYSQL
huayang183
不积跬步无以至千里
不积小流无以成江海
展开
-
MySQL 将 字符串 转为 整数
1、CAST(epr AS type)1)type 为SIGNEDSELECT CAST("-12" AS SIGNED);效果如下:2)type 为 UNSIGNEDSELECT CAST("-12" AS UNSIGNED);效果如下:2、CONVERT(expr,type)SELECT CONVERT('123', SIGNED);额外补充1、CAST 和 CONVERT 两个函数中的 type取值可以为:SIGNED,UNSIG.原创 2021-10-28 10:44:00 · 3934 阅读 · 0 评论 -
MySQL 获得当前日期时间 函数
MySQL 获得当前日期时间 函数获得当前日期+时间(date + time)函数:now()mysql> select now();+---------------------+| now() |+---------------------+| 2008-08-08 22:20:46 |+---------------------+获得当前日期+时间(date + time)函数:sysdate()sysdate() 日期时间函数跟 now() 类似,不同之处.原创 2021-10-23 01:01:54 · 5640 阅读 · 0 评论 -
Mysql查询为空赋值为0
IFNULL(c.campusNum ,0) as campusNum原创 2021-09-27 09:53:43 · 2939 阅读 · 0 评论 -
Hutool:时间日期工具
时间日期类介绍DateUtil 针对日期时间操作提供一系列静态方法DateTime 提供类似于Joda-Time中日期时间对象的封装,继承DateFastDateFormat 提供线程安全的针对Date对象的格式化和日期字符串解析支持。此对象在实际使用中并不需要感知,相关操作已封装在DateUtil和DateTime的相关方法中。DateBetween 计算两个时间间隔的类,除了通过构造新对象使用外,相关操作也已封装在DateUtil和DateTime的相关方法中。TimeInterval 一个简原创 2021-09-25 16:46:40 · 16580 阅读 · 0 评论 -
columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 版本mysql8.0
问题如下:ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘jol.solution.nick’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by原创 2021-09-16 09:53:20 · 397 阅读 · 0 评论 -
mysql将字符串转成数字
今天写sql语句时,相对字符串类型的数字进行排序,怎么做呢?需要先转换成数字再进行排序1.直接用加法 字符串+0eg: select * from orders order by (mark+0) desc2.使用函数CAST(value as type);CONVERT(value, type);注: 这里的type可以为: 浮点数 : DECIMAL 整数 : SIGNED 无符号整数 : UNSIGNEDeg: s...原创 2021-09-08 10:04:34 · 607 阅读 · 0 评论 -
Mysql命令alter add:增加表的字段
alter add命令用来增加表的字段。alter add命令格式:alter table 表名 add字段 类型 其他;例如,在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0: mysql> alter table MyClass add passtest int(4) default '0';1) 加索引 mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);例子: mysql> al...原创 2021-08-31 10:02:11 · 2057 阅读 · 0 评论 -
The driver is automatically registered via the SPI and manual loading of the
问题描述:Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.原因:升级后的mysql驱动类,Driver位置由c原创 2021-08-25 18:28:53 · 844 阅读 · 0 评论 -
MySQL 一张表中两个字段值互换
update table a, table bset a.filed1= b.field2, a.field2= b.field1where a.id = b.id原创 2021-08-12 10:09:05 · 1448 阅读 · 0 评论 -
datetime(0) NULL DEFAULT NULL报错
错误信息错误发生场景 将数据库从mysql5.7导出为sql,在mysql5.5上进行导入,报sql语句错误:datetime(0)错误产生原因 mysql5.7和mysql5.5的datetime、timestamp不兼容 mysql5.7导出的格式为 : datetime(0),mysql5.5则无法识别该语法解决办法 1)将导出语句中datetime(0) 改为datetime,或者是timestamp(0) 改为timestamp 2)保持数据库版本原创 2021-08-02 14:04:19 · 1545 阅读 · 1 评论 -
mysql5.7 timestamp类型不为空 默认值
默认值填写:CURRENT_TIMESTAMP原创 2021-08-02 14:03:15 · 710 阅读 · 0 评论 -
MySQL 8数据导入 MySQL 5.7
报错:1253 - COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4'解决方案:经测试;编辑备份sql ,全局替换:utf8mb4_0900_ai_ci 替换为 utf8_general_ciutf8mb4 替换为 utf8 再执行导入即可;原创 2021-08-02 14:01:41 · 1325 阅读 · 0 评论 -
MYSQL:Error Code: 1786 Statement violates GTID consistency: CREATE TABLE ... SELECT.
这是因为在5.6及以上的版本内,开启了enforce_gtid_consistency=true功能导致的,MySQL官方解释说当启用enforce_gtid_consistency功能的时候,MySQL只允许能够保障事务安全,并且能够被日志记录的SQL语句被执行,像create table … select 和 create temporarytable语句,以及同时更新事务表和非事务表的SQL语句或事务都不允许执行。解决方法方法一(推荐):修改 :SET @@GLOBAL.ENFOR...原创 2021-07-30 09:54:55 · 228 阅读 · 0 评论 -
Mysql合并两个sql结果
第一条sql及结果SELECTvalue4 AS ‘压缩机功率’,create_date AS ‘时间’FROMgree_dataWHEREdata_belong = ‘External_05’AND create_date > ‘2019-10-23 17:03:59’ORDER BYcreate_date结果展示:第二条sql及结果SELECTvalue2 AS ‘工作模式’,value4 AS ‘室温’,create_date AS ‘时间’FROMgree原创 2021-06-30 08:59:57 · 2074 阅读 · 0 评论 -
MYSQL 单表一对多查询,将多条记录合并成一条记录
MYSQL 单表一对多查询,将多条记录合并成一条记录一、描述:在MySQL 5.6环境下,应工作需求:将一个表中多条某个相同字段的其他字段合并(不太会表达,有点绕,直接上图)想要达到的效果:实现SQL语句:复制代码1 SELECT2 a.books,3 GROUP_CONCAT(a.name SEPARATOR ‘||’) AS NAMES,4 GROUP_CONCAT(a.code SEPARATOR ‘||’) AS codes5 FROM6 temp_info原创 2021-06-30 08:59:45 · 2445 阅读 · 1 评论 -
MySql计算百分比
根据相应条件抽出相应count数(myCount)抽出总count数(totalCount)计算百分比:myCount / totalCount * 100四舍五入:使用ROUND函数ROUND(number,要保留的小数位),ROUND(myCount / totalCount * 100,1)下面给出示例供参考:SELECT ROUND(T1.co/T2.totalCo*100,1)FROM (SELECT COUNT(*) AS co FROM fup1 WHERE fu原创 2021-06-30 08:59:35 · 9723 阅读 · 0 评论 -
Apollo 对表名区分大小写 如何配置MYSQL不区分大小写呢
背景在虚拟机上装apollo的时候发现Mysql数据库ApolloPortalDB和ApolloConfigDB都创建好了,但是启动apollo的服务的时候报错:Table ‘ApolloConfigDB.ServerConfig’ doesn’t exist思路判断是Mysql安装的时候没有设置忽略SQL语句中表名的大小写敏感,需要修改Mysql的配置文件/etc/my.cnf:vi /etc/my.cnf步骤编辑[mysqld]节点下配置项(没有就新增):lower_case_table原创 2021-06-29 09:14:07 · 629 阅读 · 0 评论 -
mysql判断是否包含某个字符的方法
mysql判断是否包含某个字符的方法用locate 是最快的,like 最慢。position一般实战例子:select * from historydatawhere locate(‘0’,opennum) and locate(‘1’,opennum)order by number desc limit 10;方法一:locate(字符,字段名)使用locate(字符,字段名)函数,如果包含,返回>0的数,否则返回0 ,它的别名是 position inselect * from原创 2021-06-29 09:13:40 · 3764 阅读 · 0 评论 -
mysql case when then用法
SELECT CASEWHEN sp.risk_project_category IS NULLOR sp.risk_project_category = '' THEN '无'ELSE sp.risk_project_categoryEND AS NAME, COALESCE (sum(1), 0) ASVALUEFROM t_sortie_plan spWHERE sp.plan_start_time < DATE_FORMAT(NOW(), '%Y-%m-%d')A原创 2021-06-29 09:13:13 · 228 阅读 · 0 评论 -
MySQL CONCAT函数:字符串拼接
MySQL 中的 CONCAT(sl,s2,…) 函数返回结果为连接参数产生的字符串,或许有一个或多个参数。若有任何一个参数为 NULL,则返回值为 NULL。若所有参数均为非二进制字符串,则结果为非二进制字符串。若自变量中含有任一二进制字符串,则结果为一个二进制字符串。【实例】使用 CONCAT 函数连接字符串,输入的 SQL 语句和执行结果如下所示。mysql> SELECT CONCAT(‘MySQL’,‘5.7’),CONCAT(‘MySQL’,NULL);±-------------原创 2021-06-29 09:16:02 · 393 阅读 · 0 评论 -
mysql分组统计以及全部统计union all使用
select ‘全部’ AS organ_category, COUNT(*) AS amountFROM organ_newWHERE city_code =‘SZ0755’ AND organ_type =‘P’ AND state =‘1’union allselectorgan_category ,COUNT(1) AS amountFROM organ_newWHERE city_code = ‘SZ0755’ AND organ_type =‘P’ ANDstate =‘1’G原创 2021-06-30 09:00:06 · 554 阅读 · 0 评论 -
Mysql union和union all用法
1: 什么时候用union和union all ?我们经常会碰到这样的应用,两个表的数据按照一定的查询条件查询出来以后,需要将结果合并到一起显示出来,这个时候就需要用到union和union all关键字来实现这样的功能,union和union all的主要区别是union all是把结果集直接合并在一起,而union 是将union all后的结果镜像一次distinct,去除重复的记录后的结果。看下面的例子:查询一:查询二:两个结果集进行union all为(直接将两个查询结果集合并)原创 2021-06-30 09:00:15 · 1133 阅读 · 1 评论 -
mysql如何将多条返回结果的一个字段合并成一条
group_concat(相同的字段名) + GROUP BY (要分组主键):加了group_concat 和 GROUP BY之后合并结果集完成原创 2021-06-30 09:00:24 · 809 阅读 · 0 评论 -
mysql中如何将几个没有关系的结果集放在一起
昨天在做报表的时候,遇到要把类型A的数据和类型B的数据横向放在一个表中展示,两个之间没什么关系,哪个的数据量多也不确定,废了段时间,才折腾出如下的解决方法:需要将SELECTes.nameprimary_school,COUNT(DISTINCTesi.stu_id)primary_numFROM……、SELECTes.nameAShigh_school,COUNT(DISTINCTesi.stu_id)AShigh_numFROM……、SELECTCOUNT(DISTINCTesi.stu_id)to原创 2021-06-30 09:00:32 · 299 阅读 · 0 评论 -
MySQL中将多行查询结果合并为一行展示SQL语句书写
写在前面 最近开发过程中,遇到一个需求是要将所查询的多条结果汇总成一条结果展示,由于之前没有接触过这方面的业务,所以经过一番折腾之后,解决了需求,这里特此记录一下,以供后续参考!1、问题复现这里以一个例子进行说明:需求:一个员工每月是否完成了打卡,要求统计员工当月完成和未完成日期,展示结果如下:测试的数据库表字段如下:复制代码CREATE TABLE time_summary (id int NOT NULL AUTO_INCREMENT,emp_id varchar(20) CHARA原创 2021-06-30 09:00:51 · 4208 阅读 · 0 评论 -
mysql sql汇总查询将两个结果集合并一行展示
建表语句:CREATE TABLE TB_TABLE (ID char(32) NOT NULL COMMENT ‘主键’,BIZ_NUM varchar(30) DEFAULT NULL COMMENT ‘业务编号’,BIZ_AMT int(11) DEFAULT NULL COMMENT ‘金额’,TYPE char(11) DEFAULT NULL COMMENT ‘类型,01-流入;02-流出’,PRIMARY KEY (ID)) ENGINE=InnoDB DEFAULT CHARS原创 2021-07-01 09:58:22 · 2419 阅读 · 0 评论 -
mysql把两个查询的结果合并为一个结果
一、表的加法(Union)1、用法:将两个表合并成一个表b299cdadfdec3fda624ba211df22fcd1.png2、语句:select需保留重复行select 查询结果from 从哪张表查询union allselect 查询结果from 从哪张表查询练习:将课程表及课程表1合并在一起课程表1:1dd4140cf5c4a6a767a6a9fef7c25111.png课程表2:27ba4b0014ac38ede67f84e5be8014f4.png合并结果:原创 2021-07-01 09:58:32 · 6515 阅读 · 0 评论 -
mysql sum为空时默认显示0
SELECT COALESCE(sum(num),0) AS pro_num FROM product;原创 2021-06-26 15:20:49 · 1859 阅读 · 0 评论 -
完全不相关的结果集,拼成一个sql
select 表1.* from (select *from 表1) as 表1,(select *from 表2)as 表2原创 2021-06-26 15:19:58 · 150 阅读 · 0 评论 -
设置mysql表名不区分大小写
查看mysql版本:[root@localhost logs]# mysql -Vmysql Ver 14.14 Distrib 5.6.37, for linux-glibc2.12 (x86_64) using EditLine wrapperlower_case_table_names参数详解:lower_case_table_names=1其中0:区分大小写,1:不区分大小写查询当前设置:mysql> show variables like '%lower原创 2021-06-20 12:48:29 · 4758 阅读 · 0 评论 -
cmd设置mysql初始密码_windows下mysql初始密码设置
a.安装服务:mysqld --install。b.启动服务 net start MySQL(可能遇到问题,MySQL 服务正在启动。MSQL服务无法启动。服务没有报告任何错误。请键入NET HELPMSG 3534 以获得更多的帮助。c把data文件夹删掉,用mysqld --initialize 初始化data目录即可。删不掉data的时候,把任务管理器打开kill掉mysqld进程,其他启动或者关闭服务失败的时候一样做法。)d当成功进入开启服务以后,用mysql -u root -原创 2021-05-21 23:41:26 · 447 阅读 · 1 评论 -
cmd杀死MySQL进程命令
taskkill/f /t /im mysqld.exe原创 2021-05-21 23:38:11 · 449 阅读 · 0 评论 -
关于Navicat 连接mysql报11001错误
现象解决方案可以看下ip/域名前面有没有空格原创 2021-05-05 10:37:38 · 4787 阅读 · 3 评论 -
mysql 出现 “1067 - Invalid default value for ‘UPDATE_TIME‘ “ 错误提示的解决办法
由于 tmp_wrh_1 的字段UPDATE_TIME 的字段类型是 timestamp ,默认值是:'0000-00-00 00:00:00'即:`UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间';在对这个表进行操作的时候,如:alter table tmp_wrh_1 MODIFY column BUSINESS_TYPE varchar(5) comment 'hhr-服务费提现'; -原创 2021-04-28 13:12:29 · 3172 阅读 · 0 评论 -
SpringBoot中修改MySQL数据库建表方言
properties配置增加spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect原创 2021-04-25 11:58:25 · 535 阅读 · 0 评论 -
(2006, ‘MySQL server has gone away‘) 原因和解决方案
mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了。首选分析给出可能出现的原因,然后给出解决方案:(1)找出原因:造成这样的原因 最常见的就是采集或者新旧数据转化——也就是 一般说sql操作的时间过长,或者是传送的数据太大(例如使用insert ... values的语句过长, 这种情况可以通过修改max_allowed_packed的配置参数来避免,也可以在程序中将数据分批插原创 2021-06-16 09:08:48 · 999 阅读 · 0 评论 -
MySQL表名不区分大小写的设置方法
在用centox安装mysql后,把项目的数据库移植了过去,发现一些表的数据查不到,排查了一下问题,最后发现是表名的大小写不一致造成的。mysql在windows系统下安装好后,默认是对表名大小写不敏感的,但是在linux下,一些系统需要手动设置。用root登录,打开并修改 /etc/my.cnf;在[mysqld]节点下,加入一行: lower_case_table_names=1。 重启mysql服务service mysqld restart或/etc/inint.d/mysq原创 2021-04-24 00:49:47 · 158 阅读 · 0 评论 -
mysql5.6配置区分大小写
今天改mysql5.6配置文件区分大小写,遇到个,,,,的 问题,网上找到资料说修改配置文件my.ini,添加lower_case_table_names=0再重启就可以了,然后,找到以下目录,没看到my.ini,不过有个my-default.ini,应该就是这个了,然后点进去改了,没用,,,那么,问题出在哪里?其实是路径错了,以下是正确路径ProgramDate是隐藏文件,需要打开显示隐藏的文件才能看到然后修改my.ini,添加lower_case_table_names=2(配置原创 2021-04-24 00:48:09 · 295 阅读 · 0 评论 -
SpringData+JPA+mysql, cannot be null when ‘hibernate.dialect‘ not set
SpringData+JPA+mysql 8, 报错 cannot be null when 'hibernate.dialect' not set是因为Hibernate SQL方言没有设置导致的,在properties文件中增加下面这行:spring.jpa.database-platform=org.hibernate.dialect.MySQLDialectspring.jpa.database-platform=org.hibernate.dialect.MySQLDialect原创 2021-04-24 00:44:04 · 295 阅读 · 0 评论 -
MYSQL修改传输数据包大小值(max_allowed_packet)
#查询允许的数据包大小 4194304字节为4MBselect @@max_allowed_packet;#临时生效,设置最大值 30Mset global max_allowed_packet =31457280#永久生效,改配置文件#linuxvim /etc/my.cnf#windows#D:\Program Files\MySQL\MySQL Server 5.6\my-default.ini##配置文件添加[mysqld]max_allowed_packet = 30.原创 2021-03-31 12:13:44 · 1624 阅读 · 0 评论