gpt4 book ai didi

MySql 获取默认或最小行的值

转载 作者:行者123 更新时间:2023-11-29 05:53:55 25 4
gpt4 key购买 nike

我有一个结构表

ID|GROUP_ID|DEFAULT|VALUE
13| 10| 0| 20
14| 11| 0| 30
15| 10| 0| 40
16| 10| 1| 50
17| 11| 0| 60

我想按规则为每个 GROUP_ID 获取一行:

如果 GROUP_ID 有 DEFAULT = 1 的行,我必须得到这一行

如果 GROUP_ID 没有 DEFAULT = 1 的行,我必须获取 MIN(VALUE) 的行

以上数据结果应该是:

16|10|1|50
14|11|0|30

如何使用 MySql 执行此操作?

最佳答案

您可以在 MySQL 中执行此操作。这是一种方法:

select t.*
from t
where t.id = (select t2.id
from t t2
where t2.group_id = t.group_id
order by (default = 1) desc, value asc
limit 1
);

子查询根据您的规则对给定组的所有行进行排序。表达式(default = 1) desc,把默认值放在第一位。在数字上下文中,MySQL 将 bool 值视为数字,“1”表示真,“0”表示假(因此 desc)。

关于MySql 获取默认或最小行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51517499/

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