【发布时间】:2013-11-13 22:39:50
【问题描述】:
我需要编写一个脚本来创建和调用名为 test 的存储过程。此过程应计算 10 到 20 之间的公因数。要找到公因数,可以使用模运算符 (%) 检查一个数是否可以均分为两个数。然后,此过程应显示一个字符串,该字符串显示如下共同因素: 10 和 20 的公因数:1 2 5 先谢谢了!
这是我目前所拥有的:
`USE my_guitar_shop;
DROP PROCEDURE IF EXISTS test;
-- Change statement delimiter from semicolon to double front slash
DELIMITER //
CREATE PROCEDURE test()
BEGIN
DECLARE counts INT Default 1;
DECLARE factor10;
DECLARE factor20;
DECLARE FACTORS varchar(100);
simple_loop: LOOP
SELECT 10
MOD counts
into factor10;
SELECT 20
MOD counts
into factor20;
WHEN (factor10 = 0 && factor20 = 0) THEN
SELECT concat("Common factors of 10 and 20:";
WHEN
END//
-- Change statement delimiter from semicolon to double front slash
DELIMITER ;
CALL test(); `
【问题讨论】:
-
dev.mysql.com/doc/refman/5.0/en/while.html 用于在指定条件为真后退出的 while 循环,或dev.mysql.com/doc/refman/5.0/en/loop.html 用于在满足特定条件后手动退出。试一试。另外,在这个循环中需要做什么?你从来没有提到过。
-
例如,更强大的解决方案将具有两个数字的参数,而不是静态的“10”和“20”。
标签: mysql loops stored-procedures modulo