php相同用户id的相加,Mysql 如何插入和自增id相同的值?

假设数据库test表有3个字段

id(自增)

name

order

现在要插入一条数据 让order 和 id 的值相等

我是 先插入一条数据

再获取到插入的id

然后 update 将order设成id值

有没有办法插入的时候就让id 和order相等

还是先 select max(id) from test

再执行插入?

这种情况一定要两条语句才能搞定吗?

回复内容:

假设数据库test表有3个字段

id(自增)

name

order

现在要插入一条数据 让order 和 id 的值相等

我是 先插入一条数据

再获取到插入的id

然后 update 将order设成id值

有没有办法插入的时候就让id 和order相等

还是先 select max(id) from test

再执行插入?

这种情况一定要两条语句才能搞定吗?

你的这个设计不合理,看得出来你这个order是用来作为排序字段的,并且希望有人工调整的余地,而不是简单的设计成按照主键排序,那这样的话你在select的时候直接用order by `order`, `id`就解决了这个问题,这样的话order字段只要有一个默认值就可以了,例如10000,优先用此字段排序,然后用id排序

当然还有记得加索引

题外话,不要用mysql的关键字作为字段名,也就是order这类的名字,建议改成priority之类的名字!

可以用Mysql的触发器实现

也可以用事务去处理

获取最后一条插入的id的话,SET @lastid = LAST_INSERT_ID(); 是不是要比select max(id) from test要好?

想了一个很猥琐的办法就是把 order 也设置自增。

一个值为什么要用两个字段?

楼上许多答案有考虑不周全的地方。

一个表无法设置两个自增字段的。

无法在insert的过程中获得当前生成的id, 只能通过两条语句去做吧。 两次操作有什么问题吗?

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值