gpt4 book ai didi

mysql - 是否可以在同一查询中进行选择并使用新值更新它?

转载 作者:行者123 更新时间:2023-11-29 12:58:28 28 4
gpt4 key购买 nike

我得到了以下表结构

mysql> desc test
-> ;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | varchar(19) | NO | PRI | | |
| name | varchar(19) | YES | | NULL | |
| age | varchar(19) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.05 sec)

最初我已经完成了插入,如图所示

insert into test (id, name, age) values("1", "A", 19);

我的要求是,我需要提取id“1”的年龄并将一些整数添加到现有年龄

我已经看过下面的示例,这对我的情况有用吗??

insert into test (id, name, age) values("1", "A", 30) on duplicate key update  age=values(age)

我使用的是JAVA,我有300个符号,我需要连续更新

是否可以在同一查询中选择并使用新值更新现有列?

例如

我如何获取现有的年龄 19 并将其与 30 添加到 id 1 的同一查询中?

最佳答案

(这个问题已经由 Marc B 在评论部分回答过。)

是的,OP发布的语句可以正常工作,因为id列上有一个主键约束,并且INSERT ... ON DUPLICATE KEY将导致现有行的更新.

要将要插入的值“添加”到列中已存在的值中,我们将向该列分配一个执行该操作的表达式:

例如

insert into test (id, name, age) values("1", "A", 30) 
on duplicate key update age = age + values(age)
^^^^^

请注意,OP 语句中所需的唯一更改是对现有列值的引用和加法操作。

注意如果列中的现有值或 INSERT 语句中提供的新值是 NULL,则表达式的结果将为 NULL。如果这是不受欢迎的行为,则需要不同的表达方式。

关于mysql - 是否可以在同一查询中进行选择并使用新值更新它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23689129/

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