我正在尝试通过选择最大的数字并向其添加 1 以生成下一行来更新 MySQL 中的多行。
UPDATE orders SET delivery_number = (
SELECT new_number FROM (
SELECT (
MAX(delivery_number) + 1
) AS new_number FROM order_invoice
) AS result
) WHERE delivery_number = 0 AND invoice_number != 0;
上面的查询似乎只选择一次,然后每次更新都使用相同的数字。
如何强制它再次扫描表以查找每次更新的最大数字?
最佳答案
update orders, (select @n:=max(delivery_number) from order_invoice) n
set delivery_number = @n:=@n+1
where delivery_number = 0 and invoice_number != 0;
关于mysql - 使用 SELECT 语句进行更新,但在每次更新时重新选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32251402/