gpt4 book ai didi

如果其中一个字段重复,则 Mysql 更新

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

我的数据库有表 ip(地址,计数),如果在数据库中找到地址,我想更新“计数”值,否则添加一条新记录。我这样做:

INSERT INTO ip(address,count)
VALUES('0.0.0.1', 3)
ON DUPLICATE KEY UPDATE count=count+VALUES(count);

但结果是有这张表:

+----+---------+-------+
| id | address | count |
+----+---------+-------+
| 1 | 0.0.0.1 | 3 |
| 2 | 0.0.0.1 | 3 |
| 3 | 0.0.0.1 | 3 |
+----+---------+-------+

`id` int(50) NOT NULL AUTO_INCREMENT,
`address` varchar(40) DEFAULT NULL,
`count` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)

为什么它不对'count'求和,而是总是创造新记录?如何更改主键?

最佳答案

使用下面的查询创建你的表

CREATE TABLE `ip` (
`id` INT(50) NOT NULL AUTO_INCREMENT,
`address` VARCHAR(40) NULL DEFAULT NULL,
`count` VARCHAR(10) NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `address` (`address`)
)

然后使用下面的查询来插入

INSERT INTO ip(address,`count`) VALUES('0.0.0.1', 3)
ON DUPLICATE KEY UPDATE `count`=`count`+1;

在这种情况下,如果表已经包含该 ip,则计数将递增 1。

请注意 address 列应该是 UNIQUE indexPRIMARY KEY,否则将无法工作。在我的创建表查询中,我将 address 设置为唯一。

关于如果其中一个字段重复,则 Mysql 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21281612/

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