SQL 按顺序 ID 顺序每天查询一次
SQL Query Once Daily in Sequential ID order
我正在使用 Dreamweaver CS5 和 MySQL。我在之前的 post 此处对此进行了类似的讨论:
Randomly Displayed Text
我在该讨论中使用的查询是:
select description from Weather
where ID = 1 + MOD(
(EXTRACT(DAY FROM CURDATE())
* EXTRACT(MONTH FROM CURDATE())
* EXTRACT(YEAR FROM CURDATE())),
(select MAX(ID) from Weather));
我正在努力为我的网站添加一项新功能。我很难尝试更改查询,而不是从 table 中随机选择一个 ID,我想按顺序查询,然后在达到最大 ID 后返回到 ID 1。我正在使用此 SQL 数据库的唯一 ID,将有 28 行。
任何帮助都会很棒!谢谢!
更新****
仅当我手动将日期更改为今天 2017-02-02 时才有效:
SELECT description
FROM `Moon`
WHERE ID = 1 + MOD(DATEDIFF('2017-01-01',CURDATE()), (SELECT MAX(ID) from `Moon`))";
<script type="text/javascript">
setInterval("my_function();",100000);
function my_function(){
$('#weather').load('website.php #today');
}
<div id="weather">
<div id="today">
<?php echo ucfirst($row_Recordset2['description']); ?>
</div>
</div>
我正在使用 .load 每 24 小时刷新一次数据。我该如何更正这个问题,这样我就不必手动更新日期了?
从固定日期算起的天数,然后 MOD 在 28
SELECT text
FROM WeatherTexts
WHERE ID = DATEDIFF(day,'2017-01-01',CURDATE()) % (SELECT MAX(ID) from WeatherTexts) + 1
试试这个:
SELECT text
FROM WeatherTexts
WHERE ID = 1 + MOD(DATEDIFF('2017-01-01',CURDATE()), (SELECT MAX(ID) from WeatherTexts));
我正在使用 Dreamweaver CS5 和 MySQL。我在之前的 post 此处对此进行了类似的讨论:
Randomly Displayed Text
我在该讨论中使用的查询是:
select description from Weather
where ID = 1 + MOD(
(EXTRACT(DAY FROM CURDATE())
* EXTRACT(MONTH FROM CURDATE())
* EXTRACT(YEAR FROM CURDATE())),
(select MAX(ID) from Weather));
我正在努力为我的网站添加一项新功能。我很难尝试更改查询,而不是从 table 中随机选择一个 ID,我想按顺序查询,然后在达到最大 ID 后返回到 ID 1。我正在使用此 SQL 数据库的唯一 ID,将有 28 行。
任何帮助都会很棒!谢谢!
更新****
仅当我手动将日期更改为今天 2017-02-02 时才有效:
SELECT description
FROM `Moon`
WHERE ID = 1 + MOD(DATEDIFF('2017-01-01',CURDATE()), (SELECT MAX(ID) from `Moon`))";
<script type="text/javascript">
setInterval("my_function();",100000);
function my_function(){
$('#weather').load('website.php #today');
}
<div id="weather">
<div id="today">
<?php echo ucfirst($row_Recordset2['description']); ?>
</div>
</div>
我正在使用 .load 每 24 小时刷新一次数据。我该如何更正这个问题,这样我就不必手动更新日期了?
从固定日期算起的天数,然后 MOD 在 28
SELECT text
FROM WeatherTexts
WHERE ID = DATEDIFF(day,'2017-01-01',CURDATE()) % (SELECT MAX(ID) from WeatherTexts) + 1
试试这个:
SELECT text
FROM WeatherTexts
WHERE ID = 1 + MOD(DATEDIFF('2017-01-01',CURDATE()), (SELECT MAX(ID) from WeatherTexts));