Mysql更新查询,setwise,递增日期

时间:2014-01-02 08:39:48

标签: php mysql sql sql-update

我必须在表格中更新一个列(称为“next-interaction”)。该列包含日期时间值(例如:'2011-07-12 18:30:00')。在应用我所有的where子句后,我有160条记录。

现在,我必须制作15条记录并更新其next-interaction列,其日期从“2014-01-06 16:00:00”开始(周末日期除外)。

从某种意义上说,

    first 15 records -> 2014-01-06 16:00:00  ( -> date-interaction column )
    next 15 records -> 2014-01-07 16:00:00
    next 15 records -> 2014-01-08 16:00:00

同样聪明,不包括星期六和星期日日期增加。

我该怎么做?我可以单独使用查询来执行此操作,还是应该为此编写一个小的php脚本?

1 个答案:

答案 0 :(得分:1)

我会使用光标来解决问题。光标允许您按顺序浏览表的所有记录。

  • 声明并打开一个光标(link)
    • 类似于DECLARE cur1 CURSOR FOR SELECT next-interaction FROM your_table;
    • 的内容
  • 声明“计数器变量”,即“i”和“日期变量”,即“d”
  • 只要计数器变量< 15 - >更新记录
  • 如果计数器变量> = 15,请将其设置为0并将日期变量增加1天,例如d = DATE_ADD(d ,INTERVAL 1 DAY)并更新记录
  • 使用DAYOFWEEK(d) = 6 or DAYOFWEEK(d) = 7,您可以查看,如果您的约会是周末

如果您必须定期执行代码,我建议您声明存储过程 (link)

我没有测试过这个。

相关问题