2014-01-02 2 views
0

Мне нужно обновить столбец (так называемый 'next-interaction') в таблице. Столбец содержит дату-время как значения (например: '2011-07-12 18:30:00'). У меня 160 записей после применения всех моих предложений.Mysql update query, setwise, incrementing date

Теперь я должен сделать наборы из 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

Для решения проблемы я использовал бы Курсор. Курсор позволяет вам последовательно просматривать все записи таблицы.

  • Declare и открыть курсор (link)
    • что-то вроде DECLARE cur1 CURSOR FOR SELECT next-interaction FROM your_table;
  • Объявите "счетчик переменной", то есть "я" и "дата переменной", т.е. "d"
  • Как долго как переменная счетчика < 15 -> обновить запись
  • Если переменная счетчика> = 15, установите ее в 0 и добавьте переменную даты на 1 день, что-то вроде d = DATE_ADD(d ,INTERVAL 1 DAY) и обновить запись
  • С DAYOFWEEK(d) = 6 or DAYOFWEEK(d) = 7 вы можете проверить, если дата выходной

Если вы должны выполнить код регулярно, я бы рекомендовал констатирующие хранимую процедуру(link)

убежища I Это не проверено.