mysql外建名是随机的吗_创建角色随机名字(mysql抽取随机记录)和mysql游标的使用_MySQL...
最近在开发中遇到了一些问题,在此记录一下解决的方法,已作备忘。
1、现在创建游戏角色的时候,基本上都是支持角色名字随机的,以前此功能在客户端用代码实现,然后向服务器请求并验证,后来发现有时候连续几次都失败,所以改成在服务器实现。实现方法主要考虑使用mysql随机查询记录,在网上查了很多方案,然后用在了我们游戏中。
实现方案是,将所有随机名字都插入到一张表中,然后从中随机取一条当前角色表中没有出现过的名字。
BEGIN
DECLARE randnum int DEFAULT 0;
SELECT FLOOR(RAND() * 309034) INTO randnum;
SELECT rname INTO _name FROM `names` WHERE ((_sex = sex) AND
(rname not in (SELECT Name FROM longwen.player WHERE _world = WorldID)) AND
(id > randnum)) LIMIT 1;
set returnvalue = 0;
END
2、接运营的需求,有时候因为服务器维护,需要给所有玩家送一些东西,这时候涉及离线玩家,所以我们的方案是静态写数据库。
因为对mysql没有深入研究过,在实践的过程中发现游标操作只能修改一条数据,后来查了很多资料,还是解决了问题,自己也学到了一点知识,修改后存储过程如下:
DECLARE _cursor CURSOR FOR
SELECT RoleID FROM player WHERE (RoleID NOT IN (SELECT roleID FROM email where LENGTH(datas) <> 0));
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' set _done = 1;
OPEN _cursor;
set _done = 0;
REPEAT
FETCH _cursor into _roleId;
replace into email(roleID, datas) values(_roleId, 'test');
UNTIL _done END REPEAT;
CLOSE _cursor;
修改前repeat里面有一条select语句。出现这个问题,主要是对SQLSTATE理解不够,02000异常有3种条件:
A:SELECT INTO 语句或 INSERT 语句的子查询的结果为空表。
B:在搜索的 UPDATE 或 DELETE 语句内标识的行数为零。
C:在 FETCH 语句中引用的游标位置处于结果表最后一行之后。
后来把select语句提出去放到游标声明语句里面就好了。
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:php中文网
TAG标签:游标角色名字
mysql外建名是随机的吗_创建角色随机名字(mysql抽取随机记录)和mysql游标的使用_MySQL...相关推荐
- mysql外键名_MySQL外键(foreign key)使用及说明详解
外键也称之为外键约束: foreign key 外键: 外面的键, 一张表的一个字段(非主键)指向另外一个表的主键, 那么该字段就称之为外键. 外键所在的表称之为子表(附表); 外键所指向的主键所在的 ...
- gbdt 算法比随机森林容易_机器学习军火库 | 浪漫算法 随机森林
一.基本原理 顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的.在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行 ...
- mysql 修改表名 判断表是否存在_判断数据库表是否存在以及修改表名的方法
一.判断数据库表是否存在: 首先要拿到数据库连接conn,调用DatabaseMetaData dbmd = conn.getDataMeta();之后调用如下方法: 代码如下: /** * 根据表名 ...
- mysql 设置 0、1 用什么数据类型_不断精炼核心知识点,终于能把MySQL讲懂了
本文核心内容如下 以下为正文内容 一.了解数据库概念 1. 为什么要使用数据库 数据保存在内存 优点:存取速度快 缺点:数据不能永久保存 数据保存在文件 优点:数据永久保存 缺点:1)速度比内存操作慢 ...
- 随机森林分类器_建立您的第一个随机森林分类器
随机森林分类器 In this post, I will guide you through building a simple classifier using Random Forest from ...
- mysql中如何求字段的个数字_求高手帮小弟解决一下!关于mysql字段中数字提取求和的问题?...
例如表1中的No字段是字符串类型,no字段中包含数字及符号,如20+1.5,8+5+4等 那么有办帮法提取出20,1.5,8,5,4这些数字来进行求和等于38.5吗?语句怎么样写? 解决方案 30 提 ...
- mysql一张表100亿条数据_一个表有100亿条记录,如何优化
我们的数据库还在设计阶段.我们预计数据量将会很大,一年的时间里,一张表,就会产生100亿条数据,表结构,如下id,userid,createddate,等等正常情况下,100亿条记录如果都存在一个表里 ...
- 随机森林模型_观点速递65|使用随机森林模型模拟短期空气污染效应:基于交通和气象数据...
概念 · 解读 随机森林:机器学习中的一种集成算法,它属于"装袋"类型,通过组合多棵决策树,最终结果通过投票或取均值,使得整体模型的结果具有较高的精确度和稳定性. 决定系数(R2) ...
- 线性回归随机梯度下降_线性回归的批次梯度与随机梯度下降
线性回归随机梯度下降 In this article, we will introduce about batch gradient and stochastic gradient descent m ...
最新文章
- 2019帝豪gs装软件_短试新帝豪GS:冷门的跨界SUV,为什么吉利能做成爆款?
- how to verify that Listener is entry point of application
- 计算机网络在线测试第二章,进行测验:-第2章-网络体系结构与网络协议测试.doc...
- EL表达式---自定义函数(转)
- Python代码覆盖性测试入门
- Java报错 -- The public type c must be defined in its own file
- 安全服务,从“被动应对”到“主动防范”
- 如何从0到1进行电商平台订单系统的搭建?
- UM2 3D 打印机 DIY 实践 (1)结构篇
- P1183 多边形的面积
- tdr上升时间什么设定_TDR的完整形式是什么?
- BasesHomo 21‘ 旷视UESTC
- 【面试题】单链表的操作1
- 【PS/PSD】237款日系小清新文艺唯美梦幻手绘插画分层PSD素材
- 前端解决:此图片来自微信公众平台未经允许不可引用
- linux下面实现检测按键(Linux中kbhit()函数的实现)
- 内部披露!最新互联网大厂的薪资和职级一览
- CF机器作弊行为严重限制机器登录怎么解决?(本日最新教程依旧可用)
- 《乡村爱情6》七月宾县开机
- python编写的用于体检数据的自动计算 比对 出报告的程序
热门文章
- 南林计算机课程表,南京林业大学课程表.doc
- c语言链表输出header中的乱码,大家帮忙看看这段代码,最后一个链表输出后总带一些乱码?请教...
- CAS客户端认证流程
- Linux 下安装nodejs
- AntiXSS v4.0中Sanitizer.GetSafeHtmlFragment等方法将部分汉字编码为乱码的解决方案
- BZOJ3928 [Cerc2014] Outer space invaders
- opencv中的安全指针和指针对齐
- 利用面向对象的方式来使用JS
- Java虚拟机专题之字节码指令(读书笔记)
- (1)win10 64位系统ISE14.7闪退问题(FPGA不积跬步101)