开发者社区> 问答> 正文

MySQL ON DUPLICATE KEY UPDATE用于在单个查询中插入多行?mysql

我有一个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 这是陷阱。我对如何进行感到困惑和困惑。我一次有多个行要插入/更新。请给我一个方向。谢谢。

展开
收起
保持可爱mmm 2020-05-13 14:45:59 537 0
1 条回答
写回答
取消 提交回答
  • 使用关键字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), ...来源:stack overflow

    2020-05-13 14:46:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像