本帖最后由 mr_mablevi 于 2010-05-11 20:40:40 编辑

解决方案 »

  1.   

    相信算法上 1+2+ ... N 你肯定已经清楚了。只是语法上不熟悉而已。建议从MYSQL手册中抄个例子,然后改一下其中的代码。有什么调试不通的可以贴出来大家帮助你一起分析。MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  2.   

    我看了下,写出下面的这个存储
    但是有错,没有循环,请看下那个地方出错了..DELIMITER $$
    CREATE PROCEDURE MABLEVI1()
    BEGIN
    DECLARE N INT DEFAULT 1;
    WHILE N <11 DO
    SET N=N+1;
    SELECT N;
    END WHILE;
    END $$
    DELIMITER ;
      

  3.   

    并无你所说的问题。mysql> DELIMITER $$
    mysql> CREATE PROCEDURE MABLEVI1()
        -> BEGIN
        -> DECLARE N INT DEFAULT 1;
        -> WHILE N <11 DO
        -> SET N=N+1;
        -> SELECT N;
        -> END WHILE;
        ->
        ->
        -> END $$
    Query OK, 0 rows affected (0.36 sec)mysql> DELIMITER ;
    mysql> call MABLEVI1();
    +------+
    | N    |
    +------+
    |    2 |
    +------+
    1 row in set (0.06 sec)+------+
    | N    |
    +------+
    |    3 |
    +------+
    1 row in set (0.06 sec)+------+
    | N    |
    +------+
    |    4 |
    +------+
    1 row in set (0.06 sec)+------+
    | N    |
    +------+
    |    5 |
    +------+
    1 row in set (0.06 sec)+------+
    | N    |
    +------+
    |    6 |
    +------+
    1 row in set (0.06 sec)+------+
    | N    |
    +------+
    |    7 |
    +------+
    1 row in set (0.06 sec)+------+
    | N    |
    +------+
    |    8 |
    +------+
    1 row in set (0.06 sec)+------+
    | N    |
    +------+
    |    9 |
    +------+
    1 row in set (0.06 sec)+------+
    | N    |
    +------+
    |   10 |
    +------+
    1 row in set (0.06 sec)+------+
    | N    |
    +------+
    |   11 |
    +------+
    1 row in set (0.06 sec)Query OK, 0 rows affected (0.06 sec)mysql>
      

  4.   

    其实是没有报错,只是
    call MABLEVI1()的时候为 2 没有循环..
      

  5.   

    DELIMITER $$
    CREATE PROCEDURE MABLEVI1()
    BEGIN
    DECLARE N INT DEFAULT 0;
    WHILE N <10 DO
    SET N=N+1;
    SELECT sum(N);
    END WHILE;
    END $$
    DELIMITER ;我想得到的结果是 1-10的总和,不是分别列出来的..可能你误解我的意思了.或是我表达错了.
      

  6.   

    已经你已经会了这些基础编程算法。你还是直接 select N*(N+1)/2 吧。