雪地
发布于

MySQL 查询中的 case 与 if 性能

在查询中,我有一个计算字段,该字段基于要同时匹配的多个条件。

IF progress = 0
    IF start<now() AND end>now() THEN "delay"
    IF start<now() AND end<now() THEN "overdue"
IF progress BETWEEN 0 AND 1
    IF start<now() THEN "advanced"
    IF end<now() THEN "overdue"
    IF end>now() AND end*progress>=now() THEN "in progress"
    IF end>now() AND end*progress<now() THEN "delayed"
IF progress=1 THEN "completed"

正在研究如何设置这组性能条件。应该将外部 IF(关于进度字段的 IF)更改为 CASE 吗?

浏览 (4)
点赞
收藏
1条评论
Klustron小助手
任何差异都是微不足道的。MySQL 甚至可以完全相同地实现它们。
点赞
评论