为了账号安全,请及时绑定邮箱和手机立即绑定

On Duplicate Key Update与insert相同

On Duplicate Key Update与insert相同

jeck猫 2019-08-27 11:10:36
On Duplicate Key Update与insert相同我已经四处搜索,但没有找到是否可能。我有这个MySQL查询:INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)字段ID具有“唯一索引”,因此不能有两个。现在,如果数据库中已存在相同的ID,我想更新它。但我真的必须再次指定所有这些字段,例如:INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8) ON DUPLICATE KEY UPDATE a=2,b=3,c=4,d=5,e=6,f=7,g=8要么:INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8) ON DUPLICATE KEY UPDATE a=VALUES(a),b=VALUES(b),c=VALUES(c),d=VALUES(d),e=VALUES(e),f=VALUES(f),g=VALUES(g)我已经在插入中指定了所有内容......一个额外的说明,我想使用工作来获取ID!id=LAST_INSERT_ID(id)我希望有人能告诉我最有效的方法是什么。
查看完整描述

3 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

UPDATE给出该语句,以便可以将旧字段更新为新值。如果您的旧值与新值相同,为什么在任何情况下都需要更新它?

例如。如果你的列ag已经被设置为28; 没有必要重新更新它。

或者,您可以使用:

INSERT INTO table (id,a,b,c,d,e,f,g)VALUES (1,2,3,4,5,6,7,8) ON DUPLICATE KEY
    UPDATE a=a, b=b, c=c, d=d, e=e, f=f, g=g;

要获得idLAST_INSERT_ID; 您需要指定您正在使用的后端应用程序。

对于LuaSQL,conn:getlastautoid()获取值。


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 839 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信