
mysql
爬山虎还上班
这个作者很懒,什么都没留下…
展开
-
实现Mysql事务嵌套(部分回滚)
Mysql savepoint实现事务嵌套(部分回滚)原创 2022-06-16 07:03:16 · 454 阅读 · 1 评论 -
mysql解析序列化字段
有时需要查询统计类似上表中 ext字段中的序列化后的字符串中某个key对应的值时比较麻烦,普通sql无法直接查询,更无法加条件限制,mysql也没有相关解析方法,故写了如下mysql方法:先写个小demo测试版:create function yangstr(str varchar(255), tar varchar(50)) returns varchar(255) no sql begin declare pos int; declare secstr varchar(255); decl..原创 2021-12-26 01:44:47 · 1105 阅读 · 0 评论 -
Mysql按照指定字段的指定顺序排序
SELECT `id`,`name` FROM `user` WHERE id IN(1,3,5,6) ORDER BY INSTR('6,3,5,1', 'id')之前网上找到的,但是后来忘了,再找就没找到,网上大部分都是case when 但是如果数据量大呢?实在没找到就翻了半天代码,好记性不如烂笔头,所以写了这篇。...原创 2021-07-20 11:52:36 · 828 阅读 · 0 评论 -
Mysql依据某关联字段连表查询差集(缺少的数据)
偶尔在开发过程中遇到某些异常,需要验证数据的完整性,看某些关联数据是否缺失,例如:user:profile:以上两个表,user通过profile_id关联profile中的id,同时两表没有使用外键关联,在程序发生异常时,或者业务逻辑没有强制时,都有可能存在profile中数据缺少,当数据量大时不容易查看,这时可以通过连表查询找出缺少profile数据的对应的user的数据:SELECT u.id,u.name,p.age,p.gender,p.height...原创 2021-07-20 11:39:14 · 1404 阅读 · 0 评论 -
mysql事务不自动提交注意事项
使用公司框架写了个php脚本,执行一些数据插入更新等,代码中用到了mysql事务,但是很奇怪的是我每次循环执行最后一条数据更新不会生效,而这条sql执行是在事务之外的,而事务却都执行成功了,数据也都返回成功,如果把事务关闭了,最后一句sql也会执行成功。分析问题应该是mysql事务相关的问题,最开始以为是我自己写的代码问题,但是检查,测试了半天也没发现,于是考虑是否是mysql环境设置问题,对比,修改事务级别等也没有解决。最后怀疑是原有框架的mysql驱动有问题。于是复制原有驱动(mysqli)的代码,重新原创 2020-08-04 17:43:05 · 1697 阅读 · 0 评论 -
sql中数字类型,尽量避免默认值使用NULL
开发过程中,由于之前有个字段A为数字类型且默认值设置为NULL,也就是说在插入时没指定值默认为(NULL),这导致后面再做部分统计时,存在另一个字段B也是数字类型,在统计A+B字段和时如果其中有一个值为(NULL)则相加后的值仍为(NULL)。比例A值为(NULL),B值为2.5,则sql语句SELECT NULL + 2.5;查询出来的结果为(NULL)。这可能与我们期望获得的结果不一样。...原创 2020-03-31 15:28:06 · 459 阅读 · 1 评论 -
mysql中SUM时数据类型不一致导致的数据精度问题
执行mysql语句时包含sum求和操作,且sum()里面进行了if判断,if的结果可能是字段值或者为'0',也就是后面这个'0'导致了数据精度问题,'0'被认为是字符串0,跟字段类型不一致导致计算求和时出现精度问题。...原创 2019-12-30 19:07:09 · 1449 阅读 · 0 评论