如何在mysql查询中执行循环?

时间:2014-01-16 05:24:58

标签: mysql sql select stored-procedures sum

例如:

表:测试

+--+-----+-----+
|id|name |value|
+--+-----+-----+
|1 |test1|5    |
+--+-----+-----+
|2 |test2|3    |
+--+-----+-----+
|3 |test3|7    |
+--+-----+-----+
|4 |test4|9    |
+--+-----+-----+

我想使用sql查询添加“ test ”表中的所有值

 DROP PROCEDURE IF EXISTS proc_loop_test;
 CREATE PROCEDURE proc_loop_test()
 BEGIN
 DECLARE add INT DEFAULT 0;
 test_loop : LOOP
 SELECT value;
 SET add = add +1;      
 END LOOP; 
 END;

所需的输出是:24

3 个答案:

答案 0 :(得分:0)

试试这个:

SELECT SUM(a.value)
FROM test a

SELECT (@value:=@value+a.value) val
FROM test a, (SELECT @value) b
ORDER BY val DESC LIMIT 1

答案 1 :(得分:0)

不确定为什么需要循环,但可以使用SUM运算符:

   SELECT sum(`value`) FROM `test`

答案 2 :(得分:0)

您可以使用聚合函数,例如总和。

例如

Select sum(value) from test