在mysql中反转一个数字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在mysql中反转一个数字相关的知识,希望对你有一定的参考价值。
使用以下存储过程来查找数字的反转,但它显示错误:使用正确的语法来使用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中的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 ;
另一答案
如评论中所述,您不能在oracle中使用mysql语法。无论如何,我认为你的事情过于复杂。一种更简单的方法是将您的数字转换为字符串,使用内置函数将其反转并将其强制转换为数字:
CREATE FUNCTION reverse_int(num INT)
RETURNS INT DETERMINISTIC
RETURN CAST(REVERSE(CAST(num AS CHAT)) AS INT);
以上是关于在mysql中反转一个数字的主要内容,如果未能解决你的问题,请参考以下文章
2021-09-11:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。反转后整数超过 32 位的有符号整数的范围就返回0,假设环境不允许存储 64 位整数(有符号或无符号)。(代码片段