我有三列,Data
,status
和count
:
Data Status count
----------------------------
1 disable
2 disable
3 disable
这是我的伪代码。count
就像一个计时器:
count += 1
启用时 table.status
,
首次运行如下:
Data Status count
----------------------------
1 enable 1
2 disable
3 disable
第二轮:
Data Status count
----------------------------
1 disable 1
2 disable
3 disable
第三次运行:
Data Status count
----------------------------
1 enable 2
2 disable
3 disable
我只是想在查询,程序或任何建议中做到这一点。
答案 0 :(得分:1)
update table_name set status='enable', count=count+1 where id=1
对于禁用,请使用其他查询,而不更新计数字段。在启用之前,如果只有在从diabled更改时需要更新,请在更新前检查状态。非常简单的任务。
另一种解决方案可能是使用触发器。这是触发器的解决方案:
DELIMITER |
CREATE TRIGGER count_upd
BEFORE UPDATE
ON my_table
FOR EACH ROW
BEGIN
IF NEW.status = "enabled" and OLD.status = "disabled" THEN
SET NEW.count = OLD.count+1;
END IF;
END|
DELIMITER ;
答案 1 :(得分:0)
您可以使用触发器来比较状态。如果状态已更新并更改,则添加计数。所以是的,可以在SQL过程(触发器)中执行此操作。