mysql order case_MYSQL ORDER BY CASE问题

我有一个这样的数据库:

-------------------------------------------------------------------

| id_one | id_two | timestamp_one | timestamp_two |

-------------------------------------------------------------------

| 27 | 35 | 9:30 | NULL |

-------------------------------------------------------------------

| 35 | 27 | NULL | 9:35 |

-------------------------------------------------------------------

| 27 | 35 | 9:34 | NULL |

-------------------------------------------------------------------

| 35 | 27 | NULL | 9:33 |

-------------------------------------------------------------------

我需要拉全部4行

ORDER BY 'timestamp_one' if 'id_one'=27 or

ORDER BY 'timestamp_two' if 'id_one'=27

这是我现在的声明:

SELECT * FROM tablename

WHERE id_one=27 OR id_two=27

ORDER BY

CASE WHEN id_one=27 THEN timestamp_one END DESC,

CASE WHEN id_two=27 THEN timestamp_two END DESC

这很好,因为输出如下:

-------------------------------------------------------------------

| id_one | id_two | timestamp_one | timestamp_two |

-------------------------------------------------------------------

| 27 | 35 | 9:30 | NULL |

-------------------------------------------------------------------

| 27 | 35 | 9:34 | NULL |

-------------------------------------------------------------------

| 35 | 27 | NULL | 9:33 |

-------------------------------------------------------------------

| 35 | 27 | NULL | 9:35 |

-------------------------------------------------------------------

但是我需要两个timestamp列进行排序,就像它们是一列一样,因此它的排序如下:

-------------------------------------------------------------------

| id_one | id_two | timestamp_one | timestamp_two |

-------------------------------------------------------------------

| 27 | 35 | 9:30 | NULL |

-------------------------------------------------------------------

| 35 | 27 | NULL | 9:33 |

-------------------------------------------------------------------

| 27 | 35 | 9:34 | NULL |

-------------------------------------------------------------------

| 35 | 27 | NULL | 9:35 |

-------------------------------------------------------------------

我希望这是有道理的。本质上,我试图拥有两个特定于WHERE条件的ORDER BY列。然后,为该行选择正确的ORDER

BY列后,它将按时间戳整体对ROWS进行排序。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值