我有一个mysql表列作为计数器(int)。每次我更新该列时,我希望字段值加上1。
所以,如果它是45,我希望它是46。
我怎么能用SQL做到这一点?
答案 0 :(得分:11)
您可以使用以下查询:
update your_table
set your_column = your_column + 1
where identifier = X
当然,由您来替换表和列的名称;-)
并确保where
条款中的条件正常; - )
答案 1 :(得分:5)
MySQL v5.0.2或更高版本支持触发器,只要在其中一行上执行插入/更新/删除操作,就会执行这些触发器。
有关MySQL中触发器的更多信息,请检查this link
答案 2 :(得分:2)
由于您希望每次都能发生这种情况,您可以使用触发器:
delimiter //
create trigger increment_field before update on your_table
for each row
begin
if new.your_column <> old.your_column then
set new.your_column = new.your_column + 1
end if;
end;//
delimiter ;
我不完全确定我理解你的问题。上面的解决方案将使得每当更新一行以便为your_column赋予不同的值时,它将使your_column = new_value + 1。应更改新旧关键字的使用以及每行使用的条件,以满足您的需求。