Немного трудно понять вопрос, но я думаю, что вы хотите, чтобы счет-фактура получал последовательный order_number
один раз оплаченный либо а), независимо от того, когда он оплачивается ИЛИ б) с номерами, сбрасываемыми каждый месяц.
если A (каждый invoice_order уникален)
UPDATE invoices t1,
(SELECT MAX(invoice_order)+1 as x FROM invoices WHERE payment = 'OK') t2
SET t1.payment = 'OK', t1.invoice_order = t2.x
WHERE t1.id = INVOICE_TO_BE_UPDATED;
если B (каждый месяц имеет новый набор повторяющихся номеров заказов)
UPDATE invoices t1,
(SELECT month, year, MAX(invoice_order)+1 as x FROM invoices WHERE payment = 'OK' GROUP BY month, year) t2
SET t1.payment = 'OK', t1.invoice_order = t2.x
WHERE t1.id = INVOICE_TO_BE_UPDATED AND t1.month = t2.month AND t1.year = t2.year;
Fiddle здесь: https://www.db -fiddle.com / ж / ccS723rK7vCjdJBdDihjj6 / 0