使用存储的mysql循环和选择

46scxncf  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(329)

我需要为每个部门的每个密码选择最后一个输入。每个部门都有一个3位数的密码,每个人都有一个基于部门的密码。i、 e.a部门的电话号码为000-099,b部门的电话号码为100-199,c部门的电话号码为201-299,以此类推,最多999。
数据库保存每个人的姓名和密码。j史密斯101 h弗兰克102 s saop 301 b切斯001 h罗伯茨401 k罗伯特402 b布雷蒂403
我需要一个排序,应该循环所有结果,并返回每个部门的最后一个数字(在上述情况下102301,001,403)
没有太多的快乐,应该是这样的

delimiter #

    BEGIN

    declare nmax int unsigned default 9;

    declare nmin int unsigned default 0;

    while nmin < nmax do

    select Passcode from main where Passcode < min*100 limit 1;

    set nmin = nmin+1;

    end while;

    END #

    delimiter ;

每次都抛出1064错误?

6yoyoihd

6yoyoihd1#

在修复语法错误之后,您将发现更多的问题。
是什么 min ?
在tanaydin的回答中检查 n ; 事情搞砸了。 LIMIT 如果没有一个
ORDER BY < 应该是 >= 这是“groupwise max”的一个变体,它有其他解决方案——没有任何循环。

zf2sa74q

zf2sa74q2#

我觉得你好像少了“创建程序”一行。。。这里是我的控制台输出和类似的声明

MySQL [prime]> delimiter #
MySQL [prime]> CREATE PROCEDURE p1 ()
    -> BEGIN
    -> declare nmax int unsigned default 9;
    -> declare nmin int unsigned default 0;
    -> while nmin < nmax do
    -> select n from primes where n < n*100 limit 1;
    -> set nmin = nmin+1;
    -> end while;
-> END #
Query OK, 0 rows affected (0.000 sec)

MySQL [prime]> call p1();
Empty set (0.000 sec)
Empty set (0.000 sec)
Empty set (0.000 sec)
Empty set (0.001 sec)
Empty set (0.001 sec)
Empty set (0.001 sec)
Empty set (0.001 sec)
Empty set (0.001 sec)
Empty set (0.001 sec)
Query OK, 0 rows affected (0.001 sec)

我希望这有帮助。

相关问题