繁体   English   中英

如何了解MySQL是否已更新或插入

[英]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_TIMESTAMPtimestamp

尝试以下php函数:

mysql_affected_rows()或mysqli_affected_rows()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM