whoru

学习、分享、交流、沉淀

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

原始数据

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 能实现更多功能,并且将启动、调试分开,会更清晰。

阅读全文 »

问题描述:整理文件的时候,误把存放 Hexo 博客的目录删除了,因为是存储在远程 Git 仓库上的,所以又重新拉取了一遍。在创建新文章进行预览的时候,发现更新所有文章的更新日期都变成了今天

产生原因:Hexo 默认是以文件的「修改时间」作为文章的更新时间,由于所有博客文章是从 Git 仓库重新拉取回来的,所有文件的创建时间和修改时间都是这个重新拉取的时间,所以文章的更新时间相应的就不对了。

解决步骤如下:

阅读全文 »

Gitalk 一个基于 Github issuesPreact 开发的评论插件,在 Hexo NexT 主题中可以很方便的开启,并且简洁、轻量。

刚开始使用的时候挺稳的,但是近期出现登录不上的问题。通过查看浏览器的「网络面板」,发现 cors-anywhere.herokuapp.com 这个地址报错 403。这是一个实现跨域请求转发的服务,而 Gitalk 正是依赖它与 Github 进行通信。为什么会 403 呢,最后找到官方说明,大体意思就是:这个地址只是用来演示的,但是发现流量越来越大,所以要进行限流。

解决这个问题最好的办法是:自建

今天查看 NexT 官网,发现有人已经提供了解决方案参见这里

本文主要就是介绍如何自建这个跨域代理,实测可用的完整过程如下下文:

阅读全文 »