gpt4 book ai didi

mysql - 根据第二列的顺序增量更新日期字段列

转载 作者:行者123 更新时间:2023-11-29 05:21:10 30 4
gpt4 key购买 nike

用于 WordPress 网站的 MSQL DB。

我想更新表中每一行的日期列,将日期/时间设置为递增值(例如,将值递增 1 天)。我执行更新的顺序应该基于行中另一列的文本排序。使用的实际日期值不相关(它可以从 2001-01-01 00:00:00 开始并以秒、分钟、小时或天为单位递增)。

表格中两列的例子:

field_date         , title_text
2014-08-20 09:00:27, AAA-Entry
2014-08-24 10:00:00, ZZZ-Entry
2014-08-27 10:15:00, MMM-Entry

因此,具有第一个“title_text”(字母排序)的行应该得到最新的日期。基于 title_text 的下一行应该有一个稍旧的日期,依此类推,直到最后一行(基于 title_text)有最旧的日期。所以上面显示的数据最终看起来像这样:

field_date         , title_text
2000-01-03 00:00:00, AAA-Entry
2000-01-01 00:00:00, ZZZ-Entry
2000-01-02 00:00:00, MMM-Entry

更新后命令: select * from tbl_name order by field_date

将显示也将按 title_text 字段的字母顺序排列的输出。这相当于运行: select * from tbl_name order by title_text

我在看:[ Incrementing datetime field with an update statement对于 SQL2005 并尝试让它在 mySQL 上工作,因为我认为这会起作用(我只是将“order by”语句更改为“order by title_text”)。但是我在将其转换为 mySQL 时遇到了问题。

对于不同方法或让上述解决方案在 mySQL 中工作的任何建议,我将不胜感激。

谢谢

伊恩

注意:这背后的原因是 Wordpress 根据发布日期填充列表框/搜索结果,但我希望它根据标题文本进行排序。 可能有一个“Wordpress”答案(或插件)可以做到这一点(如果你知道,请随时告诉我 ;-)),但从学习的角度来看,我也想了解如何使用 mySQL 实现这一点。

最佳答案

在 MySQL 中,您可以使用排序进行更新。最简单的方法是先定义一个变量,然后再进行更新:

set @rn = -1;

update t
set field_date = date('2000-01-01') + interval (@rn := @rn + 1) day
order by title_text desc;

关于mysql - 根据第二列的顺序增量更新日期字段列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25591505/

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