20230831工作心得:SQL这块花了挺多时间

1、SQL语句的问题

1、SQL这块花了挺多时间

1、理解业务

要之前自己要查什么数据,再去写SQL,这句话看起来像一句废话,但是很多时候,不知道自己在干嘛。

2、时间

1、需要查询哪个时间字段

表里有很多time有create_time,有call_time,还有start_time。同样的,其他的表里可能有很多看起来一样的字段,但实际上完全不一样,你需要知道。

除了time,可能还会有很多不同的status,你要看清是哪个,根据哪个条件判断,要修改哪个。不要像甜油和酱油一样搞不清

2、查询某个时间范围内的数据

如果要查询某个时间范围内的数据,

时间 <= 小的时间(比如startTime) > =大的时间(比如endTime)。

而不是反过来。这是很低级的错误,一定要注意。

3、mysql里 加 30 分钟的写法

错误示范:

t.create_time >= s.create_time+30

正确示范:

t.create_time >=DATE_ADD(s.create_time, INTERVAL 30 MINUTE)

3、MySQL 中,用于排序查询结果的关键字是ORDER BY ,而不是 SORT BY !

4、造数据的问题

可以先直接在生产环境查询,注意只是查询!

因为开发或测试环境里,经常没有数据。而且查询的时候,可以不要查多,先查1天的。

要清楚自己是根据什么条件查的,造数据的时候,就造和这些符合的。

2、lambda的问题

1 lambda表达式 map( m -> m::getPhone)

如果phone重复,就会报错 Duplicate key 。根据情况可以处理,也可以不处理。

如果要处理的话,可以这样:

复制代码
map( m -> m::getPhone,(k1, k2) -> k1) 

这个意思是如果出现相同的键,则选择第一个键对应的值。

2 可以在lambda表达示里使用,封装好的方法代码块

之前我有写过如何封装方法。【IDEA使用技巧】一键封装方法

这样代码就比较简洁了。

3、如果A项目引用了某个common包,想要更新A项目里的common包。

可以直接在common项目pull之后,install 就行了。因为它会自动打包,然后布置到本地仓库。因为A项目是引用了common依赖,它会自己更新。

4、XXL_JOB

1、传入的时间参数 ,要根据事实去处理!

又是一句看起来像废话,但是复制代码的时候不认真看的问题。

2、cron 表达式需要了解一下

写完之后,可以查看下次执行时间:

5、可能会随着环境改变的值,不要写死在代码里

比如,访问的接口,可以用@Value 注入,后期方便更新代码。

复制代码
@Value("${xx.xx.url:xxxxx}")
private String urlId;
相关推荐
liuxiaowei326 分钟前
【绝版教程】新版MySQL DBA高级实战进阶班 MySQL8.0 姜承尧-腾讯数据库总监
数据库·mysql·dba
心平气和量大福大27 分钟前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai41 分钟前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
维天说1 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
破碎的南瓜1 小时前
sqli--sql注入过关笔记(1,2,3,4,5,9)
数据库·笔记·sql
এ慕ོ冬℘゜1 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
执明wa1 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
一次旅行1 小时前
Python+大模型端到端自动化日报系统
开发语言·python·自动化
Zane19941 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端
噢,我明白了2 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel