gpt4 book ai didi

mysql - 通过向现有值sql添加值来更新记录

转载 作者:行者123 更新时间:2023-11-30 21:50:43 25 4
gpt4 key购买 nike

我正在使用 REPLACE 语句在具有复合主键的表中插入/更新记录。如何将新值添加到现有值并使用 REPLACE 语句更新记录?这是我的 sql:

function leaveBalanceRecord($f3)
{
$userID = $this->f3->get('userID');
$leaveType = $this->f3->get('leaveType');
$leaveBalance = $this->f3->get('leaveBalance');
$sql = "REPLACE INTO users_leave_balance
(user_id, period, leave_type, leave_balance, rollable_till_date)
VALUES ($userID, '2017-01-03', $leaveType, $leaveBalance, 3.05)";
$results = $this->db->exec($sql);
return $results;
}

例如。我有如下记录:

user_id  |  period  |  leave_type  |  leave_balance
134 | 2017-01 | 1 | 10.0

现在,如果用户尝试插入另一条记录,user_id - 134、period - 2017-01、leave_type - 1 和 leave_balance - 3,我需要将当前余额 3 添加到现有余额 10.0 并更新 13.0

user_id、period 和 leave_type 列构成一个复合键

最佳答案

这不适用于 REPLACE INTO,但您可以结合使用 INSERT INTOON DUPLICATE KEY UPDATEUPDATE 将提供一种将新数据与现有数据连接的方法。

例子:

INSERT INTO users SET userid = 8, username = "Foobar"
ON DUPLICATE KEY
UPDATE username = CONCAT(username, "123")

这基本上会尝试插入一个新用户,用户 ID 为“8”,用户名为“Foobar”。 userid 是我的主键。如果存在,它将改为更新现有用户并将“123”附加到其用户名。

关于mysql - 通过向现有值sql添加值来更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47406759/

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