gpt4 book ai didi

php - 将 ON DUPLICATE KEY UPDATE 与 2 个键一起使用

转载 作者:行者123 更新时间:2023-11-29 00:42:42 24 4
gpt4 key购买 nike

我有一个表,其中包含 iduser_idpost_idlikeviews。当用户点击 Like 按钮时,表格中将添加一行,并带有相应的 user_idpost_id,并且 like 将设置为1。如果该行已经存在并且 like 列已经是 1,则不会发生任何事情。

当用户访问特定页面时,会在表中添加一行,对应的user_idpost_idview会设置为 1。但是,如果该行已经存在,则 view 中的值将递增。

问题:我尝试使用INSERT INTO mytable ... ON DUPLICATE KEY UPDATE like = 1,但表的主键是id 而不是 user_idpost_id。如果我将主键设置为 user_idpost_id,就会出现问题,因为只有存在具有相同 user_id 的行时才会复制该行post_id

在这种情况下,应该如何构建查询?

或者更好的情况是将表拆分为 2 个表,一个用于 likes,一个用于 views。如果是这种情况,我仍然需要根据 user_idpost_id 列使行唯一。

或者做多个 SQL 查询?

请指教,谢谢!

最佳答案

我建议您有一个表示喜欢的表格,然后在您保留帖子的任何表格中,添加一行用于查看。因此,无论何时查看此帖子,您只需将该帖子的 View 值更新为 view = view + 1。

现在要解决您概述的有关主键的问题,您应该注意,您可以在该场景中使用唯一键,它可以应用于多个列并解决您遇到的问题。因此,例如,如果在您的场景中您有一个包含 userid 和 postid 的唯一键,您的数据库将不允许该表中的两个不同行具有相同的 userid 和 postid。

因此,为了将来引用,如果需要,请使用唯一 key :)

关于php - 将 ON DUPLICATE KEY UPDATE 与 2 个键一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11595575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com