我需要为每个部门的每个密码选择最后一个输入。每个部门都有一个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错误?
2条答案
按热度按时间6yoyoihd1#
在修复语法错误之后,您将发现更多的问题。
是什么
min
?在tanaydin的回答中检查
n
; 事情搞砸了。LIMIT
如果没有一个ORDER BY
<
应该是>=
这是“groupwise max”的一个变体,它有其他解决方案——没有任何循环。zf2sa74q2#
我觉得你好像少了“创建程序”一行。。。这里是我的控制台输出和类似的声明
我希望这有帮助。