MySQL
qq_38807792
这个作者很懒,什么都没留下…
展开
-
mysql 批量插入uuid() 重复的问题解决汇总
SELECT REPLACE(uuid(), _utf8'-', _utf8'') id from tableSELECT MD5(uuid()) from table这两种方式获取的uuid都是不重复的32 uuid原创 2021-12-08 10:05:09 · 1139 阅读 · 0 评论 -
Navicat - 创建定时任务
在开发中经常有定时任务的需求,有时是写在项目中,如果任务有细节的调整就需要重新发布项目,比较繁琐。今天使用Navicat创建MySql的定时任务。查看任务是否开启SHOW VARIABLES LIKE '%event_scheduler%';开启任务SET GLOBAL event_scheduler = 0;1、在navicat 新建一个你要定时执行的过程函数2、创建计划,根据业务需求设置计划参数,引用创建的函数这样数据库就会根据定义执行定时任务了...原创 2021-09-27 11:39:28 · 1842 阅读 · 0 评论 -
将表结构转换成实体字段
SELECT CONCAT( CHAR ( 13 ), "/** ", COLUMN_COMMENT, "*/", CHAR ( 10 ), 'private ',CASE data_type WHEN 'varchar' THEN 'String' WHEN 'char' THEN 'String' WHEN 'text' THEN 'String' WHEN 'int' THEN 'Integer' WHEN 'tinyint' THEN 'Integ.原创 2020-12-08 14:32:58 · 196 阅读 · 0 评论 -
MySQL分组后,取出每组最新的一条记录
SELECT * FROM (SELECT * from table where isDel = 0 ORDER BY createTime DESC limit 10) t GROUP BY id ;注意,需要加limit ,否则语句不会生效(为什么?)原创 2019-07-19 16:40:03 · 13171 阅读 · 6 评论 -
@param的总结
遇到的异常:nested exception is org.apache.ibatis.binding.BindingException: Parameter 'deptId' not found. Available parameters are [0, 1, param1, param2],当引用错误的时候就会报这样的错误关于@param注解的一些思考1、注解的作用...原创 2019-07-03 11:33:30 · 495 阅读 · 0 评论 -
mysql操作时间的函数
//5分钟之内select count(*) as num from activity_records where enter_time>=DATE_SUB(NOW(),INTERVAL 5 MINUTE);//5天之内select count(*) as num from activity_records where enter_time>=DATE_SUB(NOW(),...原创 2019-06-18 11:52:59 · 623 阅读 · 0 评论 -
表合并(union)与排序(order by)不能共存的问题
在MySQL中,想要对表的多次查询结果分别排序合并是不可行的如:SELECT name FROM studentORDER BY ageUNIONSELECT grade FROM studentORDER BY age;为了避开语法的问题,有了下面的解决办法,使用子查询SELECT * from(SELECT name FROM studentORDER BY ag...转载 2019-06-04 10:09:48 · 441 阅读 · 0 评论 -
四、数据库索引
索引的作用:提高数据查询效率常见索引模型:哈希表、有序数组、搜索树哈希表:键 - 值(key - value)。哈希思路:把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置哈希冲突的处理办法:链表哈希表适用场景:只有等值查询的场景有序数组:按顺序存储。查询用二分法就可以快速查询,时间复杂度是:O(log(N))有序数组查询效率高,更新效率低...原创 2019-06-10 10:37:18 · 82 阅读 · 0 评论 -
二、 日志系统:redo log和binlog
MySQL是如何做到恢复到半月内任意一秒的状态。我们从一个表的更新说起,新建一张表:mysql> create table T(ID int primary key, c int);如果将id=2这一行的值加1,SQL语句就会这样写:mysql> update T set c=c+1 where ID=2;sql语句查询执行的过程更新也同样会再走一遍,与...转载 2019-04-24 16:10:09 · 401 阅读 · 0 评论 -
三、数据库的事务隔离
使用数据库,总会使用到事务。最经典的例子就是银行的转账业务。转账过程会有一系列的操作:比如余额查询,加减法、更新余额等,这些操作必须保证是一体的,不然在你查询余额之后,加减法之前,在这个时间差在做一次查询转账的操作,这样的话银行的业务就会乱套了。这时就要用到事务的概念了。简单来说,事务是保证一组数据操作要么全部成功,要么全部失败。在MySQL中,事务的支持在引擎层实现的。MySQL是支持多引擎...转载 2019-04-29 09:47:45 · 116 阅读 · 0 评论 -
一、数据库的基础架构:一条SQL查询语句是如何执行的
这一篇讲解的是MySQL的基础架构,做一件事千万不要直接陷入到细节里,你应该鸟瞰全貌,这样能够帮助你从高纬度理解问题。同样,对于MySQL学习也是这样,平常我们使用数据库,看到的通常是一个整体,比如,你有个最简单的表,表里面只有一个ID字段,在执行下面这个查询语句时:select * from T where ID=10;我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在My...转载 2019-04-17 11:16:24 · 175 阅读 · 0 评论 -
十一、怎么给字符串字段加索引?
最近学习极客时间上面的专栏,准备把每篇文章写成博客,加上自己的理解,写的循序没有按照专栏的来,会持续跟新!今天讨论的是如何在邮箱这样的字段上建立合理的索引:用户表这样定义:mysql> create table SUser(ID bigint unsigned primary key,email varchar(64), ... )engine=innodb; ...转载 2019-04-01 11:04:30 · 794 阅读 · 0 评论 -
数据库:sql递归查询
mysql 自关联表,以下为向下递归以及向上递归样例。1 递归查询前期准备,如果你的表已经存在,可忽略此步。建表CREATE TABLE `wq_areainfo` ( `id` int(11) NOT null AUTO_INCREMENT, `level` int(11) DEFAULT 0 , `name` varchar(255) DEFAULT '0', `pa...转载 2018-09-02 13:24:25 · 14750 阅读 · 0 评论 -
Mybatis之高级映射collection
使用Mybatis之高级映射collection获取树形结构的数据;<resultMap type="com.ld.model.firerecruit.vo.EnterInfoVo" id="enterInfo">//<result column="cityCode" property="cityCode" javaType="java.lang.String"原创 2018-08-31 19:38:59 · 400 阅读 · 1 评论 -
列表根据当前时间由近及远进行排序
SELECT *, ( CASE WHEN startTime > now() THEN startTime - now() WHEN startTime < now() THEN now() - startTime END ) timesort, ( CASE WHEN startTime > now() THEN 0 WHEN startTime &...原创 2018-07-12 19:00:32 · 5215 阅读 · 1 评论