[英]How to understand if MySQL updated or inserted
这似乎是一个简单的问题,但Google似乎找不到太多的话题。
出于缓存的原因,我想运行查询以使用户喜欢某些东西:
INSERT INTO tbl_review_vote (user_id,review_id,vote) VALUES(:uid,:rid,:vote) ON DUPLICATE KEY UPDATE vote=:vote
但是从服务器响应中了解是否插入或更新了likes
,这样我就可以将likes
预先汇总到用户评论记录中。
有这样做的好方法吗?
使用ON DUPLICATE KEY UPDATE,如果将行作为新行插入,则每行的受影响行值为1;如果更新现有行,则为2。 然后,您可以查看mysql的LAST_INSERT_ID()
和API的last_insert_id之间的区别,以确定它是插入还是更新。
另一种查看其含义的方法是添加一个update_count
列,该列随查询的增加而递增: update_count = update_count + ;
或没有ON UPDATE CURRENT_TIMESTAMP
的timestamp
尝试以下php函数:
mysql_affected_rows()或mysqli_affected_rows()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.