gpt4 book ai didi

mysql - 对 mysql 表/ View 中的特定多行执行 bool 逻辑

转载 作者:行者123 更新时间:2023-11-29 08:56:53 24 4
gpt4 key购买 nike

我在论坛中搜索了解决方案,但这些示例对我来说没有意义。我知道我的语法不正确,但这是我试图传达的想法。

假设查询是在 2012-03-09 24:00:00 运行的。 (我认为我正确编辑了虚拟值)

task_status是一个 View ,running=(began>end),ran=((now()-ending)<10h)

select * from task_status;
+----------------+---------------------+---------------------+---------+------+
| task | began | ended | running | ran |
+----------------+---------------------+---------------------+---------+------+
| MIRRORS_SPLIT | 2012-03-09 19:15:48 | 2012-03-09 19:15:51 | 0 | 1 |
| NETWORK_BACKUP | 2012-03-09 19:25:01 | 2012-03-09 19:23:41 | 0 | 1 |
| TAPE_BACKUP | 2012-03-09 19:26:01 | 2012-03-09 23:16:32 | 0 | 1 |
+----------------+---------------------+---------------------+---------+------+

我在创建 BACKUPS 行、began=(MIN(NETWORK_BACKUP.began, TAPE_BACKUP.began)end=(MAX(NETWORK_BACKUP.end, TAPE_BACKUP.end) 时遇到问题)。那么 running 和 ran 应该正确评估,对吗?

我想添加一行,结果如下:

| BACKUPS        | 2012-03-09 19:25:01 | 2012-03-09 23:16:32 |       0 |    1 |

任何帮助将不胜感激。

最佳答案

您使用 MIN() 和 MAX() 的方式似乎是错误的,请记住,这些是聚合函数。它们处理一组由您作为参数传递的列的内容定义的值。

您似乎希望它们通过传递两个参数来告诉您两个不同行的 begin 和 end 值的 MIN 或 MAX 值。 (除非我没有正确理解你的伪语法)。

你不是在寻找类似的东西

SELECT 'BACKUPS', MIN(began), MAX(ended) 
FROM task_status WHERE task = 'NETWORK_BACKUP' OR task = 'TAPE_BACKUP'
GROUP BY task

关于mysql - 对 mysql 表/ View 中的特定多行执行 bool 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9730325/

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