![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
Counter-Strike大牛
业界老小白
爱工作,爱生活
展开
-
MySQL事务隔离级别及MVCC详解
C事务读id为1的数据,由于是可重复读隔离级别,所以不再生成新的ReadView,还是用之前的,m_ids=[100, 200],min_trx_id=100, max_trx_id=201,creator_trx_id=0。C事务读id为1的数据,再次生成ReadView,m_ids=[200],min_trx_id=200,max_trx_id=201,creator_trx_id=0。ReadView中有m_ids、min_trx_id、max_trx_id、creator_trx_id。原创 2024-03-19 21:34:24 · 976 阅读 · 0 评论 -
MyBatis联表查询时,主查询表的字段怎么统一加别名(通用方案)
但是每次写一个联表查询SQL都需要这样来一次,维护起来就比较困难了。一般来说,MyBatis生成的xml sql文件中,会有一个。,方便查询时直接引用。原创 2023-08-28 18:09:13 · 2924 阅读 · 0 评论 -
DataGrip快捷键及使用技巧
DataGrip快捷键,新建console,提交查询原创 2023-08-07 17:53:15 · 5998 阅读 · 0 评论 -
使用JOIN查询数据重复,怎么办?使用count统计怎么写SQL?
如果要用count统计数据,直接按最开始的写法也会统计多出来,而且此时distinct和group by也不好用了。distinct直接没效果,group by则变成了按tbl_a的id分别统计个数。原创 2023-07-20 11:35:12 · 578 阅读 · 0 评论 -
MySQL通过JSON格式查看SQL执行详细步骤
SQL语句]原创 2023-03-16 14:49:42 · 784 阅读 · 0 评论 -
怎么通过SQL取出数据库中JSON字段中的值
我们的数据库中经常会遇到很多JSON的字段,自己写的也好,别人写的也好。一般我们取这个值的话,会创建一个typeHandler来取值。那么如果我们想直接取到JSON里的值该怎么办呢?其实很简单,SQL自带的函数就可以解决。加入现在有一个字段叫detial,字段内容如下:{"name":"Bruce","age":24,"gender":"男"}那么我们取出name的话,写法如下:select JSON_EXTRACT(detail, '$.name') from ...;这样就可以直接取到JS原创 2022-03-12 15:06:11 · 17646 阅读 · 5 评论 -
MySQL写法 - 按条件分别统计同一个字段的数据
有时候会需要在一条SQL中统计出某一个字段在不同条件下的值,这时候这个写法就起作用了。select sum(case amountType when 1 then amount else 0 end) oneAmount, sum(case amountType when 0 then amount else 0 end) zeroAmountfrom table_namewhere conditions;喜欢本文的朋友不要忘记点一个免费的赞哦,你的赞将是我最大的动力。如果觉得有原创 2022-02-21 17:14:20 · 2239 阅读 · 0 评论 -
MySQL|MyBatis如何实现批量插入数据时如果存在就更新或者忽略
首先,需要实现更新或忽略的数据的判别字段必须是主键或存在唯一索引(可以是单列或多列)。比如要根据id判断是否重复,那么id必须是主键或者存在唯一索引。比如要根据rid + type + date判断是否重复,那么要建立3个字段联合的唯一索引。然后就是修改SQL了,如下:######存在就更新:REPLACE INTO 表名(字段1, 字段2, ...) VALUES(值1, 值2, ...原创 2019-03-26 14:18:18 · 4478 阅读 · 0 评论 -
加了唯一索引,但数据还是有重复的,原来如此。
今天刚创建了一个表,为订单号创建了唯一索引。在测试同学测试的过程中,看了一下数据,竟然有重复订单号?怎么想都想不明白,问了另一个大牛,他告诉我:因为分库分表了。唯一键只能保证一个库中不重复,而不同库,无法限制。我分库用的是平台ID,分表用的是订单号,我看了一下那两条数据,果然,平台ID不一样,那么他们有可能不在一个库里。大牛说:你用同一个平台ID insert一下,我试了一下,果然插...原创 2019-09-20 17:44:35 · 4052 阅读 · 2 评论 -
MySQL中文排序问题
起因前两天做了一个需求,代理商列表是优先按照昵称排序的。但是客户发现,列表里并没有按照昵称排序,而是乱序的。但是同样首字母的又排在一起,于是排查了一下。经过问了大佬,大佬也以为是按照拼音排序的,给他看了SQL之后,他也表示:“随便吧。”然后我突然想到,是不是按照数据库的编码(Unicode)排序的。把几个名字翻译成Unicode之后,发现果然是按照Unicode编码排序的。结果然后就找了相关资料,找到了按照汉字拼音排序的方法,如下:order by convert(name using gbk)原创 2020-09-27 15:27:27 · 387 阅读 · 0 评论 -
MySQL自带的AES加密解密比较常用的使用方法
接手的老项目中,有些SQL使用了MySQL自带的AES加密解密,为了方便操作数据,研究了一下使用方法,在这里记录一下。加密update user_password set password = HEX(AES_ENCRYPT("{加密数据}", "{密钥}")) where user_id = 1;解密select AES_DECRYPT(UNHEX(password), "{密钥}") from user_password where u_id = 1;创作很累,点赞免费。自愿打赏,不为原创 2021-12-13 14:57:37 · 12353 阅读 · 0 评论