接前文
http://blog.itpub.net/29254281/viewspace-2143103/
用MySQL实现
-
CREATE TABLE `nums` (
-
`id` int(11) NOT NULL,
-
PRIMARY KEY (`id`)
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
-
-
INSERT INTO `nums` (`id`) VALUES (1);
-
INSERT INTO `nums` (`id`) VALUES (2);
-
INSERT INTO `nums` (`id`) VALUES (3);
-
INSERT INTO `nums` (`id`) VALUES (4);
-
INSERT INTO `nums` (`id`) VALUES (5);
-
INSERT INTO `nums` (`id`) VALUES (6);
-
INSERT INTO `nums` (`id`) VALUES (7);
-
INSERT INTO `nums` (`id`) VALUES (8);
-
INSERT INTO `nums` (`id`) VALUES (9);
-
INSERT INTO `nums` (`id`) VALUES (10);
-
INSERT INTO `nums` (`id`) VALUES (11);
-
INSERT INTO `nums` (`id`) VALUES (12);
-
INSERT INTO `nums` (`id`) VALUES (13);
-
INSERT INTO `nums` (`id`) VALUES (14);
-
INSERT INTO `nums` (`id`) VALUES (15);
-
INSERT INTO `nums` (`id`) VALUES (16);
-
INSERT INTO `nums` (`id`) VALUES (17);
-
INSERT INTO `nums` (`id`) VALUES (18);
-
INSERT INTO `nums` (`id`) VALUES (19);
-
INSERT INTO `nums` (`id`) VALUES (20);
和程序的处理,基本上都是一样的思路.
-
select group_concat( target order by id desc Separator '') result from (
-
select
-
concat(
-
case s
-
when 0 then if(@lastrow!=0,'零','')
-
when 1 then '一'
-
when 2 then '二'
-
when 3 then '三'
-
when 4 then '四'
-
when 5 then '五'
-
when 6 then '六'
-
when 7 then '七'
-
when 8 then '八'
-
when 9 then '九'
-
end ,
-
case (id-1) mod 4 when 0 then ''
-
when 1 then if(s!=0,'十','')
-
when 2 then if(s!=0,'百','')
-
when 3 then if(s!=0,'千','')
-
end,
-
case ((id-1)/4) when 1 then '万'
-
when 2 then '亿'
-
else ''
-
end
-
) target
-
,
-
@lastrow:=s
-
,
-
a.*
-
from (
-
select var.n,nums.id,substring(var.n,length(var.n)-id+1,1) s from (
-
select 30150000 n,@lastrow:=null
-
) var ,nums where length(var.n)>=nums.id
-
) a
-
)b
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-2143185/
,如需转载,请注明出处,否则将追究法律责任。