我遇到以下问题的问题:
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,总和不起作用
答案 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