MySQL增加值并选择结果

时间:2014-05-08 11:34:25

标签: mysql sql increment

在MySQL中是否有办法通过某种增量增加某些行字段的值并在一个语句中选择结果?重点在于#34;在一个陈述中#34;。

它应该像Redis的INCRBY command那样工作,你可以在一个增量中递增一个键,并在一次操作中收回结果。

例如,我可以在一个声明中这样做:

  

更新table SET counter = counter + 1 WHERE id = id LIMIT 1;

     

SELECT counter FROM table WHERE id = id LIMIT 1;

如果在一个声明中无法做到这一点,那么明智地做这种表现的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

在MYSQL中,您需要创建一个包含该代码的存储过程,然后调用它。

DELIMITER $$

DROP PROCEDURE IF EXISTS updateWithCounter $$

CREATE PROCEDURE updateWithCounter () 
BEGIN
DECLARE cnt  INT DEFAULT 0;

WHILE cnt < 10 DO
UPDATE table SET counter = cnt WHERE id = id LIMIT 1;
SET cnt = cnt  + 1;
END WHILE;
END $$

DELIMITER ;
CALL updateWithCounter ();

有关在MySQL中使用变量的更多信息,您可以找到here