Mysql 根据第二列的顺序增量更新日期字段列
WordPress站点的MSQL数据库 我想为表中的每一行更新一个日期列,将日期/时间设置为递增值(例如,按1天递增值)。我进行更新的顺序应该基于行中另一列的文本排序。使用的实际日期值不相关(它可以从2001-01-01 00:00:00开始,以秒、分钟、小时或天为单位递增) 表中两列的示例:Mysql 根据第二列的顺序增量更新日期字段列,mysql,sql,wordpress,Mysql,Sql,Wordpress,WordPress站点的MSQL数据库 我想为表中的每一行更新一个日期列,将日期/时间设置为递增值(例如,按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-
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_文本的下一行应该有一个稍早的日期,依此类推,直到最后一行(基于title_文本)有最早的日期。因此,上面显示的数据最终看起来像:
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
更新后,然后执行以下命令:
按日期字段从tbl_名称订单中选择*
将以标题文本字段的字母顺序显示输出。这相当于运行:
按标题文本从tbl_名称顺序中选择*
我在看:
[对于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;
是的。只需使用Wordpress代码XHI草莓。谢谢你的回复。是的,我在那个网站上花费了很多时间,有很多有用的信息。但是,我还没有找到解决问题的方法,如果可能的话,我宁愿不添加插件。这就是为什么我要查看SQL路由。Gordan-谢谢!这看起来正是w我要买的东西。我只是有一个小小的语法问题,但现在你给了我答案,我会花一些时间。再次感谢。对不起-没有足够的代表投票-但你有我的感谢!伊恩戈丹-全部整理好了,谢谢。这只是额外的;一天之后,我丢了。再次感谢。@eyepea…那是一个打字错误。对不起-没有这听起来并不是批评。只是对其他像我这样的SQL尼安德特人的评论,他们可能会发现这条线索:-)