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

在多个查询中插入多行的MySQL ON DUPLICATE KEY UPDATE

在多个查询中插入多行的MySQL ON DUPLICATE KEY UPDATE

弑天下 2019-12-09 09:20:44
我有一个SQL查询,我想在单个查询中插入多行。所以我用了类似的东西:$sql = "INSERT INTO beautiful (name, age)  VALUES  ('Helen', 24),  ('Katrina', 21),  ('Samia', 22),  ('Hui Ling', 25),  ('Yumie', 29)";mysql_query( $sql, $conn );问题是,当我执行此查询时,我想检查是否应检查例如上面的UNIQUE键(不是PRIMARY KEY),'name'如果'name'已经存在,则应更新相应的整行,否则将其插入。例如,在下面的示例中,如果'Katrina'数据库中已经存在该行,则应更新整行,而不考虑字段的数量。再次,如果'Samia'不存在,则应插入该行。我想到使用:INSERT INTO beautiful (name, age)      VALUES      ('Helen', 24),      ('Katrina', 21),      ('Samia', 22),      ('Hui Ling', 25),      ('Yumie', 29) ON DUPLICATE KEY UPDATE这是陷阱。我对如何进行感到困惑和困惑。我一次有多个行要插入/更新。请给我一个方向。谢谢。
查看完整描述

3 回答

?
翻翻过去那场雪

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

使用关键字VALUES来引用新值(请参阅文档)。


INSERT INTO beautiful (name, age)

    VALUES

    ('Helen', 24),

    ('Katrina', 21),

    ('Samia', 22),

    ('Hui Ling', 25),

    ('Yumie', 29)

ON DUPLICATE KEY UPDATE

    age = VALUES(age),

     ...


查看完整回答
反对 回复 2019-12-09
?
茅侃侃

TA贡献1842条经验 获得超21个赞

您可以使用 Replace代替INSERT ... ON DUPLICATE KEY UPDATE。


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

添加回答

举报

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