mysql - 循环并使用存储的 MySql 选择

标签 mysql while-loop mariadb

我需要为每个部门的每个密码选择最后一个输入。 每个部门都有一个 3 位密码,每个人都有一个基于部门的代码。即,部门 A 的编号为 000-099,部门 B 的编号为 100-199,部门 C 的编号为 201-299,依此类推直到 999。

数据库保存每个人的姓名和密码。 杰史密斯 101 弗兰克 102 S皂液301 B 国际象棋 001 H罗伯茨401 罗伯特 402 b 布雷蒂 403

我需要一个排序,它应该遍历所有结果并返回每个部门的最后一个数字(在上述情况下为 102,301、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 错误?

最佳答案

看来你在这里对我来说缺少“CREATE PROCEDURE”行......这是我的控制台输出与类似的声明

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)

希望对您有所帮助。

关于mysql - 循环并使用存储的 MySql 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51635155/

相关文章:

c# - 如何在 C# 应用程序中安全地隐藏数据库凭据?

mysql - Laravel:基于输入的查询。如果输入为空,则获取所有

c++ - 简单代码的意外结果

主方案更改后 MySQL 复制失败

java - mysql 存储过程与 hsqldb 存储过程

php - 从 $data 数组 codeigniter 中访问和删除元素

mysql - 从 MySQL 迁移到 MariaDB - 外键约束形成不正确

java - Hibernate 无法创建表 hibernate_sequences

javascript - 如何同时运行一个函数的 3 个实例

PHP在while循环中添加+1