А можно ли сделать дополнительную проверку на эти самые ситуации "получил поздно или не получил вообще"?
Ремонт сети, за которой никто не следил года 3 (и которая по вечерам "ложится", из-за чего нету связи), растянется еще надолго, а пользователи хотят хоть какого-нибудь интернета.
Пока решаю через такой "костыль":
Код: Выделить всё
CREATE TABLE `new_dv_log` LIKE `dv_log`;#создал временную таблицу
#и в цикле по пользователям(их пока немного)
truncate table `abills`.`new_dv_log`; #очистил временную
insert into `abills`.`new_dv_log`(`start`,`acct_session_id`,`uid`) #выбрал максимальное время старта сессий юзера
SELECT
MAX(dv_log.start), dv_log.acct_session_id, dv_log.uid
FROM
`abills`.dv_log
WHERE dv_log.uid=16
GROUP BY
dv_log.acct_session_id;
DELETE abills.dv_log
FROM
abills.dv_log, abills.new_dv_log
WHERE
dv_log.acct_session_id = new_dv_log.acct_session_id
AND dv_log.start < new_dv_log.start
AND dv_log.sum = 0
AND dv_log.uid = 16;
# удалил все записи с одним act_session_id и start < максимального, если сумма нулевая (включенные мегабайты), иначе удалять из админки