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 ;

如评论中所述,您不能使用 syntax in 。无论如何,我认为你把事情复杂化了。一种更简单的方法是将您的数字转换为字符串,使用内置函数将其反转并将其转换回数字:

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 ;