告别硬编码,mysql 如何实现按某字段的不同取值进行统计

上周我突然意识到,我在grafana上写的 sql 语句存在多处硬编码。这篇笔记将记录如何实现没有硬编码的sql语句,以及自学编程过程中如何应对自己的笨拙代码和难题不断的状况。

1、有效但粗笨的硬编码

所谓硬编码,大意是指代码中出现很多具体的取值,每个取值都是手动赋值的。比如:

-- 达成某个成就的用户数
select
    count(user_id) as 用户数
from 
    achivement_table
where
    achivement_name= '牛刀小试'

以我家产品 xue.cn 的成就系统为例,我们首个版本仅有10个成就,我要拷贝粘贴修改成就名称达10次。最近成就升级到V2版本,有17个成就,未来还会有更多成就。再比如习题和章节,每本书的章节数和习题数,都是几十个起。至于统计每本书的阅读用户数,每个章节的留言数,每个成就的达成用户数……这类实现太频繁了。

如果全部采用硬编码,我意识到这将低效粗笨。

在初学编程时,你我总会写出一些低效但生效的代码。随着编程水平提升或需求变得复杂,我们将有机会迭代自己的代码。迭代是好事,但这不意味着之前的低效但有效的代码是坏事。——**接纳自己早期的笨拙,并追求持续的进步。咱们不需要为自己初学阶段的代码感到不好意思或羞愧,而是要视之为提升的机会。**这个心态令我在自学编程的路上几乎无所畏惧。

2、知道,但用时忘

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值