多次更新mysql

时间:2017-05-20 07:04:25

标签: mysql sql mariadb

我遇到以下问题的问题:

insert into table
select *
from table
on duplicate key update field1 = field1 + 10

我试图更新1个表中的字段,当然我不能使用UPDATE语句,因为我需要更新表中的所有行。 当我尝试执行查询时,mysql返回错误:

ERROR 1052 (23000): Column 'field1' in field list is ambiguous

"表"和" field1"是示例名称

- UPDATE -

查询也可以是:

insert into table
select *
from table
where field2 < 1000
on duplicate key update field1 = field1 + 10

我甚至试过:

update table
set field1 = field1 + 10
where field2 < 1000

但更新的所有行都有field1 = 10,总和不起作用

3 个答案:

答案 0 :(得分:1)

&#34;表&#34;是SQL中的特殊/保留字。将其更改为其他名称ex。 &#34; MYTABLE&#34;

UPDATE mytable
SET 
  field1 = field1 + 10
WHERE 
  field2 < 1000;

答案 1 :(得分:0)

我认为可以通过使用名称表来完成,无论如何这里是使用Insert来做的答案。

INSERT INTO table (id, field1, field2) VALUES(1, "value1","value2") ON
DUPLICATE KEY UPDATE field1= field1+10 WHERE field2 < 1000

答案 2 :(得分:0)

您想要哪个field1?来自SELECT或表中列的更新?

请参阅有关何时使用此文件而不是您拥有的文档:

... UPDATE field1 = VALUES(field1) + 10