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