在mysql中反转一个数字

问题描述 投票:1回答:2

使用以下存储过程来查找数字的反转,但它显示错误:使用正确的语法来使用near循环。

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 ;
mysql sql numbers reverse
2个回答
0
投票

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 ;

1
投票

如评论中所述,您不能在中使用语法。无论如何,我认为你的事情过于复杂。一种更简单的方法是将您的数字转换为字符串,使用内置函数将其反转并将其强制转换为数字:

CREATE FUNCTION reverse_int(num INT)
RETURNS INT DETERMINISTIC
RETURN CAST(REVERSE(CAST(num AS CHAT)) AS INT);
© www.soinside.com 2019 - 2024. All rights reserved.