gpt4 book ai didi

MySQL 如何根据是否存在插入新记录或更新字段?

转载 作者:行者123 更新时间:2023-11-29 01:47:54 25 4
gpt4 key购买 nike

我正在尝试实现一个评级系统,在我的数据库表中保留以下两个字段:

评级(当前评级)num_rates(到目前为止提交的评分数)

UPDATE `mytable`
SET rating=((rating*num_rates)+$theRating)/num_rates, num_rates=num_rates+1
WHERE uniqueCol='$uniqueCol'

变量来 self 的 PHP 代码。

所以,基本上有时带有 uniqueCol 的行在数据库中不存在,所以如果存在,我该如何执行上述语句,如果不存在,则执行如下操作:

INSERT INTO `mytable`
SET rating=$theRating, num_rates=1, uniqueCol=$uniqueCol

最佳答案

看看INSERT ... ON DUPLICATE KEY UPDATE .

它应该看起来像这样:

INSERT INTO mytable (rating, num_rates, uniqueCol)
VALUES ($theRating, 1, $uniqueCol)
ON DUPLICATE KEY UPDATE
rating=((rating*num_rates)+$theRating)/num_rates,
num_rates=num_rates+1;

确保 uniqueCol 上有一个 UNIQUE indexPRIMARY KEY

关于MySQL 如何根据是否存在插入新记录或更新字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2036794/

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