我有一个包含3行数据的表:
“id”是主键和自动增量。 order_no不是唯一索引,因为可能有许多company_ids具有相同的order_no。
我可以使用此查询生成并向用户显示下一个order_no:
select LPAD(count(order_no)+1, 4, '0') from customers_orders where company_id=28
这给了我“0004”。没关系。但是用户也可以手动输入id,数据就像这样:
现在它不以0001开头,生成查询给我“0003”。但我已经有了“0003”。查询应该像“0005”一样返回。
如果我得到最新的order_no并将其添加1(例如max(order_no)+1),它将无效。因为数据也可以是这样的:
如果数据是这样的话;查询必须生成“0003”。
我想我可以用PHP中的while循环来实现这一点,但是如果可能的话我想用MySQL做这件事。谢谢。