自动更改MySQl列的每个值

时间:2017-09-25 04:09:46

标签: mysql mysql-event

我有一个包含许多整数值的列。如何对其进行编码,以便每24小时将每个值减1,直到达到0?到目前为止,我已经理解了每24小时重复一次事件的代码,但却找不到从每个单独的值中减去一个事件的方法。谢谢!

SET GLOBAL event_scheduler = ON;
SELECT @@event_scheduler; 
CREATE EVENT e_store_ts 
ON SCHEDULE
  EVERY 24 HOURS  
DO
  UPDATE users set value= '1';

1 个答案:

答案 0 :(得分:0)

您可以使用case语句仅更新大于零的值

SET GLOBAL event_scheduler = ON;
SELECT @@event_scheduler; 
CREATE EVENT e_store_ts 
ON SCHEDULE
  EVERY 24 HOURS   
DO
  UPDATE users SET `value`= CASE WHEN `value` > 0 THEN `value` - 1 ELSE `value` END;