【问题标题】:How to perform loop in mysql query?如何在mysql查询中执行循环?
【发布时间】:2014-01-16 05:24:57
【问题描述】:

例如:

表格:测试

+--+-----+-----+
|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

【问题讨论】:

  • 使用聚合类似Select sum(value) from Test

标签: mysql sql select stored-procedures sum


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

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

       SELECT sum(`value`) FROM `test`
    

    【讨论】:

      【解决方案3】:

      你可以使用聚合函数,比如 sum。

      例如

      Select sum(value) from test
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-13
        • 1970-01-01
        • 1970-01-01
        • 2018-12-14
        • 2016-06-29
        • 2013-05-13
        相关资源
        最近更新 更多