天堂2单机版
Would you like to react to this message? Create an account in a few clicks or log in to continue.

天堂2单机版

QQ群号16947726
 
首页Latest images搜索注册登录

 

 [教程] 批量修改一键完成之常用的Sql语句及L2J中应用范例

向下 
作者留言
Admin
Admin



帖子数 : 51
注册日期 : 13-07-13

[教程] 批量修改一键完成之常用的Sql语句及L2J中应用范例 Empty
帖子主题: [教程] 批量修改一键完成之常用的Sql语句及L2J中应用范例   [教程] 批量修改一键完成之常用的Sql语句及L2J中应用范例 Icon_minitime周六 八月 17, 2013 10:57 am

作者:排骨米饭 Michael

相比其他网游模拟器,L2J的数据库很庞大,有的时候修改起来会特别的麻烦,
这里介绍一些常用的Sql语句,大家认真看完这个教材以后修改东西必定会事半功倍.
注意每条语句每个单词之间是有空格的,如果想运行这些语句,使用Navicat连接到数据库按下F6输入即可
语句中所用到的标点符号均是半角英文输入状态下的符号,下面先开始介绍语句,其实对于常用的修改,只要学会两大类语句即可
更新与删除.
1.更新语句:
格式: update 表名 set 字段名 = 值(或运算公式);
L2J中应用的举例说明:
例1: 我想要游戏中所有的NPC血量都变成10000,
sql : update npc set hp = 10000;
分析: npc 是表名, hp就是我们要修改的字段,这样运行后的结果就是所有npc的血量都变成10000了
例2: 我想要游戏中所有NPC的血量都变成原有值的2倍,
sql : update npc set hp = hp * 2;
分析: 这里对字段hp做的是乘法运算,将hp翻倍后在重新赋值给hp字段
例3: 我想要游戏中的NPC的血量都变成原有数值的1.5倍
sql : update npc set hp = hp * 3 / 2;
分析: 出现小数运算了,这里不推荐直接乘以小数值,建议使用先乘后除的运算
例4: 我想要游戏中所有的boss类型的NPC血量变更为2倍
sql : update npc set hp = hp * 2 where type = 'L2RaidBoss';
分析: 同样是运算,这里出现了一些条件限制,条件限制我们可以用where来处理,其中type字段决定了npc的类型,而type的数据类型属于字符串,所以type中的值要用引号来括起来.
例5: 我想要游戏中ID从1000到2000的NPC的血量翻倍
sql: update npc set hp = hp * 2 where id >999 and id < 2000;
分析: 条件约束出现了要约束一个区间的情况,这个时候可以用where 与 and 合作来完成

2,删除语句:
格式: delete from 表明 where 字段名条件;
L2J中的举例应用说明:
例1:我想要删除出了金币以外所有物品的掉落信息
sql : delete from droplist where itemId <> 57;
分析: droplist 是掉落信息的表, itemId 是物品的id ,当id不等于57即金币时,那么记录就会倍删掉,这样执行后的结果怪物只会掉落金币
例2: 我想删除某几个物品在所有怪物身上的掉落信息.
sql : delete from droplist where itemId in (A,B,C,D,.....);
分析: 无论是哪个怪物itemId为A,B,C,D...的物品掉落信息全被删掉了,其他掉落信息完全保留

好啦,教材到这里就结束了,sql语句应用起来并不困难,希望大家能够学会举一反三灵活应用,另外错别字无视吧!
返回页首 向下
https://1000.catsboard.com
 
[教程] 批量修改一键完成之常用的Sql语句及L2J中应用范例
返回页首 
1页/共1

您在这个论坛的权限:不能在这个论坛回复主题
天堂2单机版 :: 服务端技术区 :: 教程区-
转跳到: