这个问题在这里已经有答案了:
找出replace语句是否已替换或刚刚插入mysql(3个答案)两年前关门了。如果我有一个字段1为主键的查询:
$rep = "Replace into table (field1,field2) values ('value1','value2')"; $stmt = $db->query($rep);
有没有办法判断mysql是插入了行,还是找到并替换了行?
n3ipq98p1#
为子孙后代:
$rowCount = $stmt->rowCount();
如果$rowcount==1,则为插入;如果$rowcount==2,则为替换。
zpgglvta2#
在重复键上插入aggregateddata(datenum,timestamp)值(“734152.979166667”,“2010-01-14 23:30:00.000”)update timestamp=values(timestamp)为了完成这类任务,mysql提供给我们 DUPLICATE KEY UPDATE .下面是一个示例,如果数据库中不存在记录,您将如何创建新记录,否则它将更新记录
DUPLICATE KEY UPDATE
$rep = "INSERT into table (primaryField,field2) values ('value1','value2') ON DUPLICATE KEY UPDATE primaryField=VALUES(primaryField)"; $stmt = $db->query($rep);
欲知更多详情,请阅读此文https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html我想这对你有帮助。
2条答案
按热度按时间n3ipq98p1#
为子孙后代:
如果$rowcount==1,则为插入;如果$rowcount==2,则为替换。
zpgglvta2#
在重复键上插入aggregateddata(datenum,timestamp)值(“734152.979166667”,“2010-01-14 23:30:00.000”)update timestamp=values(timestamp)
为了完成这类任务,mysql提供给我们
DUPLICATE KEY UPDATE
.下面是一个示例,如果数据库中不存在记录,您将如何创建新记录,否则它将更新记录
欲知更多详情,请阅读此文https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html
我想这对你有帮助。