mysql
bulingbuling^_^
这个作者很懒,什么都没留下…
展开
-
多表left join 慢sql问题
多表left join 慢sql问题原创 2023-02-27 19:18:25 · 715 阅读 · 0 评论 -
Spring动态数据源的简单理解
Spring动态数据源的简单理解原创 2022-12-28 16:33:17 · 722 阅读 · 0 评论 -
MYSQL 表名作为变量时,必须使用 ${ }
MYSQL 表名作为变量时,必须使用 ${ }原创 2022-09-06 11:02:04 · 1830 阅读 · 2 评论 -
mysql update select 从查询结果中更新数据
updateAinner join(selectid,namefromB) conA.id = c.idsetA.name = c.name;原创 2021-06-22 13:34:45 · 1163 阅读 · 0 评论 -
mysql 加了serverTimezone=GMT%2B8,还是差了8小时
第一种 serverTimezone=GMT%2B8第二种 serverTimezone=Asia/Shanghai还不行就在application.properties中加上 spring.jackson.time-zone= GMT+8原创 2021-04-02 13:47:09 · 26893 阅读 · 2 评论 -
导致MySQL索引失效的原因以及底层逻辑
在自己测试索引成功场景时,可能出现符合索引规则,但是却不走索引的情况,这是因为mysql有自己的优化规则,比如数据量很少的时候,不走索引反而更快,具体可自行百度,全值匹配(索引最佳)explainselect*fromuserwherename='zhangsan'andage =20andpos ='cxy'andphone ='18730658760';和索引顺序无关,MySQL底层的优化器会进行优化,调整索引的顺序explain select...原创 2021-03-22 16:47:15 · 641 阅读 · 2 评论 -
MySQL LEFT函数的使用
LEFT(str,length);LEFT()函数接受两个参数:str是要提取子字符串的字符串。 length是一个正整数,指定将从左边返回的字符数。在sql查询中可当作模糊查询使用, name中前三个是"abc" 的数据,如果是left(name,4) 那结果(空格会自动省略)如果是left(name,5) 那结果...原创 2021-03-22 14:04:15 · 7190 阅读 · 0 评论 -
用商户订单号作为查询条件时,发生的隐式类型转换。
trade_no是varchar型。 select id,ptn from aep where trade_no = 1548196371202011129123456789结果:发现结果和预想结果不一样,经查询时发生了隐式类型转换。此处应该是转为了浮点数进行比较。在数值较大时,转为浮点数会造成精度丢失。(较大具体时多大,没找到答案。。。)我在上面的条件中试出的是在17位以后可以更改,查询结果一致(具体涉及到类型转换)mysql 隐式类型转化规则 两个参数至少有一个是原创 2020-11-04 15:34:54 · 229 阅读 · 0 评论 -
数据库联表查询,用第二张表的独有字段排序,为何会乱序?
记一个问题,有缘再解释。解决办法其实就是order by指明唯一确定的字段 如order by id。此处是想知道MYSQL底层排序原理。1.数据库联表查询,用第二张表的独有字段排序时,乱序SELECT id, name, type, cts.hot FROM CT ct LEFT JOIN CTS cts ON cts.topic_id = ct.id ORDER BY cts.hot ASC当排序的条件一样时,为何会以此种顺序显示,且不会出现多次搜索排序结果不一致的情况.原创 2020-09-27 17:01:51 · 505 阅读 · 0 评论 -
MYSQL数据库中,查询emoji表情的方法。
字符集:CHARSET=utf8mb4 数据库可以存储emoji表情排序规则COLLATE=utf8mb4_unicode_ci 数据库可以查询emoji表情,_ci:case insensitive,不区分大小写。排序规则COLLATE=utf8mb4_bin 也可以查询出emoji表情,utf8mb4_bin是根据二进制(Binary)来查询的。可具体根据自己的需求去选择。SELECT ct.name FROM CT ct WHERE ct.NAME LIKE '%????原创 2020-09-27 15:21:34 · 3467 阅读 · 0 评论 -
mysql中 索引数据结构用+树的原因,与hash,二叉树,红黑树的简单对比。
hash索引的优势:一次查找,精准定位。不足: 范围查询 > < ,排序 order by 。比如要找id<4,那它只能快速定位4的hash位置,1 2 3 都不能快速定位。二叉树:和插入顺序有关,极端情况会出现倾斜二叉树(顺序插入1 2 3 4 5 查找5 就要5次)。红黑树:解决了二叉树插入顺序的问题,但是又没有从根本上解决,顺序插入,严重右倾。B+Tree: 由于叶子节点上存放了所有的数据,并且有指针相连,每个叶子节点在逻辑上是相连的,所以对于范围查找比较友好。原创 2020-09-21 14:28:46 · 178 阅读 · 0 评论 -
mybatis 用<foreach>根据ID批量更新时的一个注意点。
看接口。传入一个Long型的List。int updateReadCount(@Param(value = "topicIdList") List<Long> topicIdList);xml里面循环update.<update id="updateReadCount" parameterType="java.util.List"> update CTS set read_count = read_count + 1 w原创 2020-09-18 17:50:41 · 571 阅读 · 2 评论 -
mysql获取排名后的名次(根据话题热度,获得话题的热度名次)
根据话题热度,获得话题的热度名次 SELECT b.ranking FROM ( SELECT a.id, a.hot, ( @ranknum := @ranknum + 1 ) AS ranking FROM ( SELECT ct.id, cts.hot FROM原创 2020-09-18 17:25:38 · 964 阅读 · 0 评论 -
update中批量更新用in的一个小问题。
数据库字段。根据topic_id批量更新read_count,mybatis中的语句 update c set read_count = read_count + 1 where topic_id in <foreach item="topicId" index="index" collection="topicIdList" open="(" close=")" separator=","> #{.原创 2020-09-17 12:15:38 · 4617 阅读 · 3 评论 -
ON DUPLICATE KEY UPDATE 使用方法。
先看一下数据库里面要操作的表其中user_id是主键。SQL语句执行前,数据库状态如下。SQL语句如下。INSERT INTO community_user_statistic ( user_id, fans_count, interest_count, likes_count, stories_count, moment_count, marks_count )VALUES( 2, 2, 3, 4, 5, 6, 7 )ON DUPLICATE KEY UPDATE stories原创 2020-08-28 10:27:18 · 951 阅读 · 0 评论 -
MySQL的索引是怎么加速查询的?
MySQL 的索引长什么样子?索引到底是怎么加速查询的?事实上,在你还没有执行 create index 语句的时候,MySQL 就已经创建索引了。让我们从建表开始吧。聚簇索引执行建表语句:CREATE TABLE `student` ( `id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '主键id', `student_no` VARCHAR(64) COMMENT '学号', `name` VARCHAR(64) COMMENT '学生转载 2020-08-22 14:29:51 · 195 阅读 · 0 评论 -
mysql 把查询出来的结果更新到表
UPDATE c_s_c cscINNER JOIN ( SELECT id, author_id, create_time FROM c_c_00 cc00 )cc ON cc.id = csc.comment_id SET csc.create_time = cc.create_time,csc.author_id = cc.author_id原创 2020-08-17 20:11:10 · 665 阅读 · 0 评论