gpt4 book ai didi

mysql - 每个客户的不同订单号序列

转载 作者:行者123 更新时间:2023-11-28 23:53:24 25 4
gpt4 key购买 nike

我有订单表。每个客户(由电子邮件字段标识)都有自己的订单。我需要为每个客户提供不同顺序的订单号。这是示例:

----------------------------
| email | number |
----------------------------
| test@com.com | 1 |
----------------------------
| example@com.com | 1 |
----------------------------
| test@com.com | 2 |
----------------------------
| test@com.com | 3 |
----------------------------
| client@aaa.com | 1 |
----------------------------
| example@com.com | 2 |
----------------------------

有没有可能用 mysql 以简单的方式做到这一点?

最佳答案

如果你想在插入后更新这个表中的数据,首先你需要一个主键,一个简单的自增列就可以完成这项工作。之后你可以尝试详细说明各种脚本来填充数字列,但正如你从其他答案中看到的那样,它们并不是那么“简单的方法”。

我建议在插入语句中分配订单号,用这个“更简单”的查询获取订单号。

select coalesce(max(`number`), 0)+1 
from orders
where email='test1@test.com'

如果你想在一次插入中完成所有事情(更好的性能和避免并发问题)

insert into orders (email, `number`, other_field)
select email, coalesce(max(`number`), 0) + 1 as number, 'note...' as other_field
from orders where email = 'test1@test.com';

为了更加自信地避免为同一客户分配两个具有相同编号的订单,我强烈建议向列 (email,number) 添加唯一约束

关于mysql - 每个客户的不同订单号序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com