gpt4 book ai didi

mysql - 选择了多少行?

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

我有一个这样的表:

// mytable
+----+-----------------+
| id | timestamp |
+----+-----------------+
| 1 | 1452001861 | -- yesterday
| 2 | 1452088272 | -- today
| 3 | 1452088283 | -- today
| 4 | 1451915461 | -- last week
| 5 | 1452001861 | -- yesterday
| 6 | 1452088263 | -- today
| 7 | 1252388263 | -- out of {today, yesterday, last week}
| 8 | 1452088312 | -- today
| 9 | 1452001762 | -- yesterday
| 10 | 1222388263 | -- out of {today, yesterday, last week}
| 12 | 1451915459 | -- last week
+----+-----------------+

这是我的查询:

SELECT * FROM mytable 
WHERE DATE(FROM_UNIXTIME(timestamp)) >= CURDATE() - INTERVAL 7 DAY
ORDER BY timestamp DESC

上述查询选择从现在到过去 7 天之间的所有行。

<小时/>

现在有时所有行都在最后 7 天之前(我的意思是最新的行是在最后 8 天添加的),然后该查询的输出将是什么(选择 0 行) 。

我想要的是,如果没有选择任何行(0 行),则选择最后 5 行(之前添加的)。我该怎么做?

最佳答案

您可以尝试这种方法:

SET @row_count := (SELECT COUNT(*) 
FROM mytable
WHERE DATE(FROM_UNIXTIME(timestamp)) >= CURDATE() - INTERVAL 7 DAY);

IF (@row_count > 0) THEN
SELECT *
FROM mytable
WHERE DATE(FROM_UNIXTIME(timestamp)) >= CURDATE() - INTERVAL 7 DAY
ORDER BY timestamp DESC;
ELSE
SELECT *
FROM mytable
ORDER BY timestamp DESC
LIMIT 5;
END IF;

关于mysql - 选择了多少行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34640301/

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