龙空技术网

双色球号码我做主,数据库编程随机生成双色球号码(MySQL)

数据指挥 11194

前言:

眼前看官们对“双色球算法外国书”大概比较注意,同学们都需要了解一些“双色球算法外国书”的相关资讯。那么小编也在网摘上网罗了一些有关“双色球算法外国书””的相关内容,希望朋友们能喜欢,大家快快来学习一下吧!

购买福彩双色球是大家一种喜闻乐见的娱乐活动,还可以高大上的说是为了公益事业献爱心,作者本身就积极热爱这项活动,截至目前的最佳战绩是1000元,今天(周四)又是双色球开奖日,拿起手机准备点击随机选号的时候,突发了我的灵机,能不能用数据库(MySQL)来实现随机双色球号码呢?说干就干!

模拟双色球那我们就模拟真实的中奖号码的产生过程。33个红球放在一个罐子里,每次产生一个,每产生一个罐子里的球就少一个,那我就设计一个表red,代表这个红球罐子:

create table red(r int(2),u char(1) default '0');

其中r代表红球号码,u代表是否使用的意思,默认值0,未使用,1代表已使用过。

然后插入从1到33的33行数据代表红球:

insert into red(r) values(1);insert into red(r) values(2);insert into red(r) values(3);insert into red(r) values(4);insert into red(r) values(5);insert into red(r) values(6);insert into red(r) values(7);insert into red(r) values(8);insert into red(r) values(9);insert into red(r) values(10);insert into red(r) values(11);insert into red(r) values(12);insert into red(r) values(13);insert into red(r) values(14);insert into red(r) values(15);insert into red(r) values(16);insert into red(r) values(17);insert into red(r) values(18);insert into red(r) values(19);insert into red(r) values(20);insert into red(r) values(21);insert into red(r) values(22);insert into red(r) values(23);insert into red(r) values(24);insert into red(r) values(25);insert into red(r) values(26);insert into red(r) values(27);insert into red(r) values(28);insert into red(r) values(29);insert into red(r) values(30);insert into red(r) values(31);insert into red(r) values(32);insert into red(r) values(33);

篮球由于只有一个,所以就不用制作罐子了,生成一个1到16的随机数就行。准备工作结束那就开始编写SQL语句吧。呦呦呦!不巧的是MySQL的循环只能写在过程或者函数里,那我们就编写这样一个函数:

CREATE FUNCTION doublecolorball() RETURNS varchar(100) CHARSET utf8BEGINdeclare i int default 1;#定义一个循环变量declare red int;#定义单个红球declare redballs varchar(100);#定义红球串update red set u='0';#开始前,将所有红球置为可用状态while i<=6 do #循环6次select r into red from red where u='0' order by rand() limit 1; #从红球堆里一次抽取一个update red set u='1' where r=red;#将抽取的红球设置为已用状态set i = i+1;#循环变量增加1,代表已经完成一次抽取红球的操作end while;#循环体结束select GROUP_CONCAT(r) into redballs from red where u='1';#将所有已经抽取的红球聚合成一行一列并将结果赋值给变量redballsRETURN concat('红球:',redballs,' 篮球:',cast(floor(rand()*16)+1 as char(2)));#随机从1到16抽取一个篮球并和红球串组合返回。END;#函数体结束

上面的函数创建成功后,使用以下方法调用

select doublecolorball() 中将号码;

这样一个福彩双色球的MySQL随机函数就完成了,我们来回顾一下使用到的相关技术:

1、创建表的语句,其中字段有默认值的写法 create table;

2、插入数据的方法insert;

3、创建函数的方法、调用函数的方法create function …returns;创建函数还可以使用变量,不过本函数没必要使用变量。

4、declare定义变量并赋初值;

5、查询数据并将数据使用变量保存into;

6、update更新数据;

7、随机数函数rnad()只能随机0到1的小数,所以用一种变相方法实现1到16的随机数;

8、使用group_concat函数将单列多行数据聚合成单行单列数据。

9、调用函数的方法 select 函数();

10、mysql注释语句的写法#,注意如果函数内的注释行折行,请将其变成单行,或者注释行前面都加上#

此函数只是简单实现了随机生成号码的方法,其实还可以扩展双色球的各种复杂算法,比如和值、奇偶比、三区比等等,稍微扩展一下red表即可,那位有优秀想法可以私信联系我实现算法,共同实现大奖梦。

学习和使用此函数不一定中奖,倒是可以多多练习MySQL的SQL写法,多多实现此类具有实际意义的事情,数据库能力便会愈来愈强。

最后为啥你老是写MySQL的实现方法,不写Oracle和SQL Server了,因为MySQL方便,可以偷懒,下次把那哥俩带上!

标签: #双色球算法外国书