最近在开发中遇到了一些问题,在此记录一下解决的方法,已作备忘。

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...相关推荐

  1. mysql外键名_MySQL外键(foreign key)使用及说明详解

    外键也称之为外键约束: foreign key 外键: 外面的键, 一张表的一个字段(非主键)指向另外一个表的主键, 那么该字段就称之为外键. 外键所在的表称之为子表(附表); 外键所指向的主键所在的 ...

  2. gbdt 算法比随机森林容易_机器学习军火库 | 浪漫算法 随机森林

    一.基本原理 顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的.在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行 ...

  3. mysql 修改表名 判断表是否存在_判断数据库表是否存在以及修改表名的方法

    一.判断数据库表是否存在: 首先要拿到数据库连接conn,调用DatabaseMetaData dbmd = conn.getDataMeta();之后调用如下方法: 代码如下: /** * 根据表名 ...

  4. mysql 设置 0、1 用什么数据类型_不断精炼核心知识点,终于能把MySQL讲懂了

    本文核心内容如下 以下为正文内容 一.了解数据库概念 1. 为什么要使用数据库 数据保存在内存 优点:存取速度快 缺点:数据不能永久保存 数据保存在文件 优点:数据永久保存 缺点:1)速度比内存操作慢 ...

  5. 随机森林分类器_建立您的第一个随机森林分类器

    随机森林分类器 In this post, I will guide you through building a simple classifier using Random Forest from ...

  6. mysql中如何求字段的个数字_求高手帮小弟解决一下!关于mysql字段中数字提取求和的问题?...

    例如表1中的No字段是字符串类型,no字段中包含数字及符号,如20+1.5,8+5+4等 那么有办帮法提取出20,1.5,8,5,4这些数字来进行求和等于38.5吗?语句怎么样写? 解决方案 30 提 ...

  7. mysql一张表100亿条数据_一个表有100亿条记录,如何优化

    我们的数据库还在设计阶段.我们预计数据量将会很大,一年的时间里,一张表,就会产生100亿条数据,表结构,如下id,userid,createddate,等等正常情况下,100亿条记录如果都存在一个表里 ...

  8. 随机森林模型_观点速递65|使用随机森林模型模拟短期空气污染效应:基于交通和气象数据...

    概念 · 解读 随机森林:机器学习中的一种集成算法,它属于"装袋"类型,通过组合多棵决策树,最终结果通过投票或取均值,使得整体模型的结果具有较高的精确度和稳定性. 决定系数(R2) ...

  9. 线性回归随机梯度下降_线性回归的批次梯度与随机梯度下降

    线性回归随机梯度下降 In this article, we will introduce about batch gradient and stochastic gradient descent m ...

最新文章

  1. 2019帝豪gs装软件_短试新帝豪GS:冷门的跨界SUV,为什么吉利能做成爆款?
  2. how to verify that Listener is entry point of application
  3. 计算机网络在线测试第二章,进行测验:-第2章-网络体系结构与网络协议测试.doc...
  4. EL表达式---自定义函数(转)
  5. Python代码覆盖性测试入门
  6. Java报错 -- The public type c must be defined in its own file
  7. 安全服务,从“被动应对”到“主动防范”
  8. 如何从0到1进行电商平台订单系统的搭建?
  9. UM2 3D 打印机 DIY 实践 (1)结构篇
  10. P1183 多边形的面积
  11. tdr上升时间什么设定_TDR的完整形式是什么?
  12. BasesHomo 21‘ 旷视UESTC
  13. 【面试题】单链表的操作1
  14. 【PS/PSD】237款日系小清新文艺唯美梦幻手绘插画分层PSD素材
  15. 前端解决:此图片来自微信公众平台未经允许不可引用
  16. linux下面实现检测按键(Linux中kbhit()函数的实现)
  17. 内部披露!最新互联网大厂的薪资和职级一览
  18. CF机器作弊行为严重限制机器登录怎么解决?(本日最新教程依旧可用)
  19. 《乡村爱情6》七月宾县开机
  20. python编写的用于体检数据的自动计算 比对 出报告的程序

热门文章

  1. 南林计算机课程表,南京林业大学课程表.doc
  2. c语言链表输出header中的乱码,大家帮忙看看这段代码,最后一个链表输出后总带一些乱码?请教...
  3. CAS客户端认证流程
  4. Linux 下安装nodejs
  5. AntiXSS v4.0中Sanitizer.GetSafeHtmlFragment等方法将部分汉字编码为乱码的解决方案
  6. BZOJ3928 [Cerc2014] Outer space invaders
  7. opencv中的安全指针和指针对齐
  8. 利用面向对象的方式来使用JS
  9. Java虚拟机专题之字节码指令(读书笔记)
  10. (1)win10 64位系统ISE14.7闪退问题(FPGA不积跬步101)