我试图构建一个'新评论'功能,其中用户显示自上次访问以来的新评论数。 我构建了一个包含主题ID,用户ID和时间戳的“视图”表。每次用户访问该主题或插入新行(如果不存在时),更新时间戳的最佳方式是什么?目前我有:MySQL REPLACE rows WHERE字段a等于x且字段b等于y
REPLACE INTO Views (MemberID, TopicID, Visited)
SET ('$_SESSION[SESS_MEMBER_ID]', '$threadid', '$t')
WHERE MemberID = $_SESSION[SESS_MEMBER_ID] AND TopicID = $threadid
但是,这是行不通的。是否可以在一个查询中做到这一点?
我试过第二个,它只是添加行而不是替换。我也尝试过“在DUPLICATE KEY UPDATE MemberID ='$ _SESSION [SESS_MEMBER_ID]',TopicID ='$ threadid'”。 – Miles
@Miles:您需要将这两个设置为桌面上的组合唯一键。然后,如果尝试插入具有相同唯一键的行,它将更新'Visited'的值而不是抛出错误。 – CanSpice