mysql 中数字的反转
REVERSE of a number in mysql
使用了以下存储过程来查找数字的倒数,但它显示了error:use使用近循环的正确语法。
DELIMITER //
CREATE PROCEDURE ggrepeat1()
begin
declare num1 int;
declare num2 int;
declare rev int default 0;
set @num1:='&num1';
while num1>0
loop
set @num2:=num1 mod 10;
set @rev:=num2+(rev*10);
set @num1:=floor(num1/10);
end loop;
dbms_output.put_line('Reverse number is: '||rev);
end//
DELIMITER ;
如评论中所述,您不能使用 oracle syntax in mysql。无论如何,我认为你把事情复杂化了。一种更简单的方法是将您的数字转换为字符串,使用内置函数将其反转并将其转换回数字:
CREATE FUNCTION reverse_int(num INT)
RETURNS INT DETERMINISTIC
RETURN CAST(REVERSE(CAST(num AS CHAT)) AS INT);
mysql中的while循环应该这样用
这是第一个问题
while n>0 do
content..
end while
第二个问题是
dbms_output.put_line('Reverse number is: '||rev);
在mysql中你不能使用上面的代码。
相反,你可以使用这个
Select 'The reverse of number is 'rev;
所以你的代码是
DELIMITER //
CREATE PROCEDURE ggrepeat1()
begin
declare num1 int;
declare num2 int;
declare rev int default 0;
set @num1:='&num1';
while num1>0 do
set @num2:=num1 mod 10;
set @rev:=num2+(rev*10);
set @num1:=floor(num1/10);
end while;
Select 'Reverse number is: 'rev;
end//
DELIMITER ;
使用了以下存储过程来查找数字的倒数,但它显示了error:use使用近循环的正确语法。
DELIMITER //
CREATE PROCEDURE ggrepeat1()
begin
declare num1 int;
declare num2 int;
declare rev int default 0;
set @num1:='&num1';
while num1>0
loop
set @num2:=num1 mod 10;
set @rev:=num2+(rev*10);
set @num1:=floor(num1/10);
end loop;
dbms_output.put_line('Reverse number is: '||rev);
end//
DELIMITER ;
如评论中所述,您不能使用 oracle syntax in mysql。无论如何,我认为你把事情复杂化了。一种更简单的方法是将您的数字转换为字符串,使用内置函数将其反转并将其转换回数字:
CREATE FUNCTION reverse_int(num INT)
RETURNS INT DETERMINISTIC
RETURN CAST(REVERSE(CAST(num AS CHAT)) AS INT);
mysql中的while循环应该这样用
这是第一个问题
while n>0 do
content..
end while
第二个问题是
dbms_output.put_line('Reverse number is: '||rev);
在mysql中你不能使用上面的代码。
相反,你可以使用这个
Select 'The reverse of number is 'rev;
所以你的代码是
DELIMITER //
CREATE PROCEDURE ggrepeat1()
begin
declare num1 int;
declare num2 int;
declare rev int default 0;
set @num1:='&num1';
while num1>0 do
set @num2:=num1 mod 10;
set @rev:=num2+(rev*10);
set @num1:=floor(num1/10);
end while;
Select 'Reverse number is: 'rev;
end//
DELIMITER ;