此查询将数据从 tmp 插入到 lee 表中表,如果发生唯一键冲突则更新现有行。但是,ON DUPLICATE KEY UPDATE 子句的语法似乎不清楚。
MySQL 假设 ON DUPLICATE KEY UPDATE 后等式的左侧引用了 INSERT INTO 子句中的列,而右侧引用 SELECT 子句中的列。
例如,考虑以下内容查询:
INSERT INTO lee(exp_id, created_by, location, animal, starttime, endtime, entct, inact, inadur, inadist, smlct, smldur, smldist, larct, lardur, lardist, emptyct, emptydur) SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct, t.inact, t.inadur, t.inadist, t.smlct, t.smldur, t.smldist, t.larct, t.lardur, t.lardist, t.emptyct, t.emptydur FROM tmp t WHERE uid=x ON DUPLICATE KEY UPDATE entct=t.entct, inact=t.inact, ...
在此查询中,ON DUPLICATE KEY UPDATE 子句的左侧与 INSERT INTO 子句中指定的列匹配。等号之前的列代表 leo 表中的列,等号之后的列代表要从 SELECT 子句更新的值。
以上是如何使用'INSERT INTO ... SELECT ...”正确指定 MySQL 的'ON DUPLICATE KEY UPDATE”子句中的列?的详细内容。更多信息请关注PHP中文网其他相关文章!