• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    創建角色隨機名字(mysql抽取隨機記錄)和mysql游標的使用_MySQL

    來源:懂視網 責編:小采 時間:2020-11-09 19:42:45
    文檔

    創建角色隨機名字(mysql抽取隨機記錄)和mysql游標的使用_MySQL

    創建角色隨機名字(mysql抽取隨機記錄)和mysql游標的使用_MySQL:最近在開發中遇到了一些問題,在此記錄一下解決的方法,已作備忘。 1、現在創建游戲角色的時候,基本上都是支持角色名字隨機的,以前此功能在客戶端用代碼實現,然后向服務器請求并驗證,后來發現有時候連續幾次都失敗,所以改成在服務器實現。實現方法主要考
    推薦度:
    導讀創建角色隨機名字(mysql抽取隨機記錄)和mysql游標的使用_MySQL:最近在開發中遇到了一些問題,在此記錄一下解決的方法,已作備忘。 1、現在創建游戲角色的時候,基本上都是支持角色名字隨機的,以前此功能在客戶端用代碼實現,然后向服務器請求并驗證,后來發現有時候連續幾次都失敗,所以改成在服務器實現。實現方法主要考

    最近在開發中遇到了一些問題,在此記錄一下解決的方法,已作備忘。

    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語句提出去放到游標聲明語句里面就好了。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    創建角色隨機名字(mysql抽取隨機記錄)和mysql游標的使用_MySQL

    創建角色隨機名字(mysql抽取隨機記錄)和mysql游標的使用_MySQL:最近在開發中遇到了一些問題,在此記錄一下解決的方法,已作備忘。 1、現在創建游戲角色的時候,基本上都是支持角色名字隨機的,以前此功能在客戶端用代碼實現,然后向服務器請求并驗證,后來發現有時候連續幾次都失敗,所以改成在服務器實現。實現方法主要考
    推薦度:
    標簽: 記錄 名字 角色
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 青草国产精品视频。| 国产精品熟女一区二区| 亚洲AV无码精品无码麻豆| 91午夜精品亚洲一区二区三区| 日韩精品无码一本二本三本| 久久91精品国产91久久麻豆| 欧美精品第一页| 四虎国产成人永久精品免费| 久久午夜无码鲁丝片午夜精品| 精品少妇一区二区三区视频| 精品黑人一区二区三区| 亚洲精品国产精品乱码在线观看| 久久99精品九九九久久婷婷| 国产成人无码精品一区在线观看 | 久久99精品久久久久久9蜜桃| 老司机国内精品久久久久| 精品欧洲AV无码一区二区男男 | 98视频精品全部国产| 骚片AV蜜桃精品一区| 亚洲精品乱码久久久久久蜜桃 | 国产精品美女网站在线观看| 中文字幕精品一区二区日本| 精品999久久久久久中文字幕| 8AV国产精品爽爽ⅴa在线观看| 久久国产免费观看精品3| 亚洲av日韩精品久久久久久a| 四虎国产精品成人| 无码精品久久一区二区三区| 久久精品二区| 蜜臀AV无码国产精品色午夜麻豆| 精品国产人成亚洲区| 久久精品国产欧美日韩| 久久亚洲中文字幕精品一区| 久久久久亚洲精品中文字幕| 久久久久久噜噜精品免费直播| 无码精品久久一区二区三区| 中文字幕久久精品| 亚洲av日韩av天堂影片精品| 精品偷自拍另类在线观看| 2022国产精品福利在线观看| 久久精品成人免费看|