gpt4 book ai didi

mysql - 显示mysql中的列名

转载 作者:行者123 更新时间:2023-11-29 12:15:30 24 4
gpt4 key购买 nike

我的表中有三个日期值,即 ActivationDate、RegistrationDate 和 CreationDate,我希望有一个选择来显示具有最小值的列的名称。

我用过

Select LEAST(ActivationDate, RegistrationDate, CreationDate) from table name

它返回最小值。但是,我想知道这三个值中哪一个是最小值。因此,我的预期结果是日期最少的列的名称,可以是激活日期、注册日期或创建日期。

对于您的解决方案,请说明如果其中 3 个具有相似的值,结果会是什么?它返回全部还是一个?

谢谢

最佳答案

您只需在条件语句中测试每列的最小值即可。

假设表结构如下

CREATE TABLE `test` (
`activationdate` datetime DEFAULT NULL,
`registrationdate` datetime DEFAULT NULL,
`creationdate` datetime DEFAULT NULL
)

使用这些值

mysql> select * from test;
+---------------------+---------------------+---------------------+
| activationdate | registrationdate | creationdate |
+---------------------+---------------------+---------------------+
| 2015-01-01 00:00:00 | 2015-01-02 00:00:00 | 2015-01-03 00:00:00 |
| 2015-01-30 00:00:00 | 2015-01-15 00:00:00 | 2015-01-12 00:00:00 |
+---------------------+---------------------+---------------------+

您可以使用以下查询来提取最小的值和列名称:

 select least(activationdate, registrationdate, creationdate) as value,
case when least(activationdate, registrationdate, creationdate) = activationdate then 'activationdate'
when least(activationdate, registrationdate, creationdate) = registrationdate then 'registrationdate'
when least(activationdate, registrationdate, creationdate) = creationdate then 'creationdate'
end as field
from test;

它会给你这些结果:

+---------------------+----------------+
| value | field |
+---------------------+----------------+
| 2015-01-01 00:00:00 | activationdate |
| 2015-01-12 00:00:00 | creationdate |
+---------------------+----------------+

关于mysql - 显示mysql中的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29875825/

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