随笔分类 - MySql
摘要:背景 同组的一位负责B端Web项目的同事将版本发布到生产环境之后。收到了用户很多投诉,诸如功能很难用、操作流水很繁琐。产品经理进行分析检讨,判断是因为新旧版本系统用户使用习惯差异太大,且没有兼容原有功能。经过短暂的商议后决定回退版本。 因为是web应用所有直接将服务端的版本包回退到上次发版即可。但是
阅读全文
摘要:背景 项目中使用PageHlper插件进行分页,今日发现有多处SQL查询语句都出现了如下的报错。 com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'it 1 LIMIT ? ', expect LIMIT,
阅读全文
摘要:背景 前不久在写一个分页接口的时候,在测试阶段出现了排序结果紊乱且数据不正确的问题,那个接口是按照create_time进行排序的,但是对应的表中有很多相同create_time的数据,最后发现是因为 order by 排序的时候,如果排序字段中有多行相同的列值,则排序结果是不确定的。 复现 创建一
阅读全文
摘要:背景 今天遇到一个Mysql插入用户信息时报错的问题,报错信息如下 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xB8' for column 'userName' at row 1 原因 原因是用户的userName这里
阅读全文
摘要:简介 EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。 EXISTS 指定一个子查询,检测行的存在。语法:EXISTS subquery。参数 subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 I
阅读全文
摘要:一个慢SQL优化 今天在观察慢sql统计的时候,发现了一个sql的平均耗时长,而且总的扫描行数大,分析对应表的DDL,发现此表中只有一个唯一索引index1(a,b,c),但是在查询条件中没有带上a字段,导致这个查询sql没有走索引,从而导致了全表扫描。这里涉及到一个索引最左前缀原则,我们来一起看一
阅读全文
摘要:接着之前写的一篇文https://www.cnblogs.com/lingyejun/p/11915413.html 做什么事情 更新book_borrow表,设置其中的student_name为student表中的name,关联条件为book_borrow.student_id = student
阅读全文
摘要:前言 将数据从一张表迁移到另外一张表的过程中,通过mysql的concat方法批量生成sql时遇到了一个问题,即进行UPDATE更新操作时如果原表中的字段中包含单引号'或者双引号",那么就会生成不正确的update语句。 原因当然很简单因为update table set xxx = 'conten
阅读全文
摘要:背景介绍 今天需要给一张表里面补数据,需要按照行的维度进行update,如果是个别数据那么直接写update语句就可以了,但是场景要求的是将整表的数据进行update,要实现这个需求就不能只靠蛮力了,需要有一点小技巧来完成这个工作。 实例演示 以下面的场景作为示例进行讲解: 学生表: 一张简单的学生
阅读全文
摘要:问题背景 最近在项目中使用mysql的group by进行分组查询的场景比较多,其中一次遇到了一个问题,即在开发环境执行一个如下sql时是正确且可执行的, 但是放到了测试环境就会报如下的错误。 解决办法 因为开发环境和测试环境所使用的mysql数据库的版本不一样,开发环境使用的时候5.6.x而测试环
阅读全文
摘要:数据库事务(Database Transaction) 1. 事务是个啥玩意? 2. 事务都有啥属性特征呢? 3. 事务这玩意能干啥? 一个数据库事务通常包含对数据库进行读或写的一个操作序列。它的存在包含有以下两个目的:1、为数据库操作提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异
阅读全文
摘要:Regex与Like的关系Mysql中我们经常会用到正则表达式就是Like filed like '%?%' 。但是有时对于一些复杂场景下的正则过滤,单单一个like就显得有些力不从心了 Regex的精华就是 '' , like '%%' = regex '',特殊字符如^、$可以改变%的意思。 l
阅读全文
摘要:int类型: int bigint smallint 和 tinyint 类型,如果创建新表时没有指定 int(M) 中的M时,默认分别是 : int int(11) bigint bigint(20) smallint smallint(6) tinyint tinyint(4) MySQL支持选
阅读全文
摘要:MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 理解MyBatis MyBatis 是支持普通 SQL 查询,存储
阅读全文

浙公网安备 33010602011771号