Всем привет!
У меня есть запрос, который возвращает записи из таблицы с группировкой. Может получиться так, что будет возвращена одна строка, в которой сгруппированы несколько сотен записей. Упрощенный пример:
SELECT `id`, `status`, `type`
FROM `table`
GROUP BY `type`
ORDER BY `date`
LIMIT 0, 20
После того как я получил записи, я хочу изменить статус на "получено", каждой из возвращенных записей, включая те, которые были сгруппированы.
У меня была идея с помощью GROUP_CONCAT получить все ID сгруппированных записей и одним запросом с помощью WHERE IN() изменить их статус. Но этот вариант не подходит, т.к. придется лепить костыли (из-за ограничений MySQL) для случаев, когда в группировке окажется несколько тысяч ID.
Выход для меня был бы таким (но конечно же он не работает):
UPDATE `table` SET `status` = 1
GROUP BY `type`
ORDER BY `date`
LIMIT 0, 20
Натолкните пожалуйста на мысль, что делать