whoru

学习、分享、交流、沉淀

《红色警戒2:共和国之辉》是即时战略游戏《红色警戒2》的一个非官方游戏模组(MOD),由中国爱好者 Lord Hero 制作,将古巴阵营从游戏中剔除,以中国阵营替代,并新增了解放军战士、轻坦克、训练中心等中国阵营特有的兵种及建筑。

《红色警戒2:共和国之辉》

阅读全文 »

本文只是项目过程中暂时能想到的一种方法,如果你有其它实现方式,欢迎留言与我交流。

原始数据

id(主键) organization_id audit_time(审核时间)
2orejelw5td3bwfkv 2oo2v3mqwrd832efh 2021-06-02 15:23:37
2or7zo75ygc7fi2l7 2oo2v3mqwrd832efh 2021-07-02 15:23:37
2or81tr5evpean60d 202106171149548es5ntrhd 2021-06-19 11:12:16
2or81tt1m5rnw1h0o 202106171149548es5ntrhd 2021-05-19 11:57:00
2or96z2524ac1zw0v 202106171149548es5ntrhd 2021-07-09 13:31:00

目标描述:针对每个 organization_id, 根据审核时间,获取最新审核的一条数据

预期结果

id(主键) organization_id audit_time(审核时间)
2or7zo75ygc7fi2l7 2oo2v3mqwrd832efh 2021-07-02 15:23:37
2or96z2524ac1zw0v 202106171149548es5ntrhd 2021-07-09 13:31:00

完整 SQL 如下:

1
2
3
4
5
SELECT
SUBSTRING_INDEX(GROUP_CONCAT(id ORDER BY audit_time),',',-1) AS id,
organization_id
FROM organization_auth_request
GROUP BY organization_id

关键点说明:

  • GROUP_CONCAT(id ORDER BY audit_time) 分组后拼接的时候,可以指定排序字段和排序方式,以确保能够按照指定顺序拼接
  • SUBSTRING_INDEX('待截取的字符串',',',-1)
    • 第一个参数是待截取的字符串;
    • 第二个参数是截取时以什么字符分组,比如这里是以 , 分组;
    • 第三个参数是截取方向和个数,-1 表示从末尾截取一组字符(正数从开头开始截取;负数从末尾开始截取)。

关于这两个函数的更多使用方式,参见官方文档或搜索引擎。

1
2
3
4
5
6
7
8
9
10
11
12
13
# -s 切分大小,可选 k、m、g、t
# -x 忽略文件
# -r 递归目录
➜ ~ zip -s 100m -x "*.DS_Store" -r split-foo.zip foo/

# 切分已有 zip 文件
➜ ~ zip existing.zip --out new.zip -s 50m

# 解压
# -s 0 合并
# --out 指定输出文件名
➜ ~ zip -s 0 split.zip --out single.zip
unzip single.zip

适用场景:以 npm run xxx 启动项目,并进行本地开发;在需要调试的时候按 F5 或单击 Debug 相应按钮打开调试模式,进行断点调试。

涉及 vscode 配置:

  • .vscode/tasks.json 启动
  • .vscode/launch.json 调试

其实 launch.json 也一样可以启动项目,但是 tasks.json 能实现更多功能,并且将启动、调试分开,会更清晰。

阅读全文 »