gpt4 book ai didi

MYSQL查询 "row-subrows"排序选择

转载 作者:行者123 更新时间:2023-11-29 07:38:35 28 4
gpt4 key购买 nike

我有一个表,其中 SUBROW 显示一行的 ID(如果不是 0),并指示该行是否是另一行的子行。

ID | SUBROW
1 | 0
2 | 0
3 | 1
4 | 2
5 | 1

我需要一个查询,它将按以下顺序进行选择:

ID | SUBROW
1 | 0
3 | 1
5 | 1
2 | 0
4 | 2

想法?

最佳答案

假设 parent 的 id 总是小于 child 的,你可以使用类似这样的东西:ORDER BY LEAST(ID, SUBROW), ID先由 parent 订购,然后由 child 订购。

...实际上,假设只有两个“层”( parent 和 child ,没有孙子), parent 的id不需要小于 child

ORDER BY IF(SUBROW = 0, ID, SUBROW), SUBROW <> 0, ID

ORDER BY CASE WHEN SUBROW = 0 THEN ID ELSE SUBROW END, SUBROW <> 0, ID

这首先按父 ID(如果有的话)排序,然后是该行是否有父 ID,最后是 , ID仅当您要保证子级的顺序不能从一次查询执行到下一次查询时才需要。

关于MYSQL查询 "row-subrows"排序选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47561178/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com