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

主要是游戏中一些经典任务、游戏资料的科普.
回复
头像
天堂之手
Mr.GL
Mr.GL
帖子: 263
注册时间: 2018-02-24 21:37
联系:

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

帖子 天堂之手 » 2018-03-24 20:02

相比其他网游模拟器,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语句应用起来并不困难,希望大家能够学会举一反三灵活应用,另外错别字无视吧!
图片

回复

在线用户

正浏览此版面之用户: 没有注册用户 和 2 访客