作者laechan (小太保)
看板mud_sanc
标题[wizs] 新指令 select
时间Sat Nov 8 01:23:35 2008
程式名: /cmds/wiz/_select.c
程式行数: 230 (所以它是小程式,而且还没最佳化)
> select
select(Sanc SQL)指令说明:
=========================================================================
select 资料名 from 资料库
select 资料名1,资料名2,.. from 资料库
select 资料名 from 资料库 where 某资料名 = 某值
select 资料名 from 资料库 where 某资料名 = 某值 order by 某资料名 [desc]
资料名例: level, race, stat, stat/con, ...
资料库例: users, livings
==========================================================================
Laechan@Sanc in 2008/11/07
例一:
从 玩家 中挑出 种族 为 elf 的, 秀出其 name、gender、race, 并照 hp_src 大小排列
> select gender,race,hp_src from users where race = elf order by hp_src desc
name gender race hp_src
========================================================
luri female elf 1007322
i female elf 794556
uki female elf 533021
maiden female elf 528292
angelo male elf 446397
laechan male elf 435611
aton female elf 425970
natname female elf 419628
doreen2 female elf 417618
weapon female elf 407167
例二:
从 怪物 中挑出 等级 > 200 的, 秀出其 等级 及 名称, 并照 等级 由大而小
> select level from livings where level > 200 order by level desc
level short
========================================================
255 杰尔克(Jerec)
255 织依(Clovers)
255 格克(Gorc)
255 穿着圣诞老人装的的肉粽伯(ThomgthMan)
255 缇西拉.德古拉(Tessera)
255 死神─迪斯(Death)
255 恶灵剑士(Swordsman)
255 地狱大元帅(General)
255 守卫队长兼训练师傅莫登(Morden)
从 怪物 中挑出 等级 > 200 的, 秀出其 等级 及 名称, 并照 等级 由小而大
> select level from livings where level > 200 order by level
level short
========================================================
201 绝世天魔(Fulltwinevil)
201 泥人(Mudperson)[7个泥人]
201 黑无常(bgargoyle)
202 夏克儿(Ice-SnowEvilnessMaster)
203 北地禁卫军(northguard)
203 石巨人(Stoneman)[10个石巨人]
205 谟(Maw)
206 巨大兵蚁(Soldierant)[5只巨大兵蚁]
206 铁甲武士(ironguard)
206 魔偶操术士(DollMaster)
208 巨型史莱姆(slime)
例三:
一次秀出玩家的多种资料
> select level,gender,race,pri_guild,ethic,warexp from users where level = 120
name level gender race pri_guild ethic warexp
============================================================================
lucifa 120 female elf clerical 28 UNDEFINED
fancylants 120 male devil mage 1005031 4882
cristine 120 male devil mage 216104 2256
note3 120 male elf mage 1102787 7405
kamina 120 male human blader 64872 15260
koloyas 120 male devil slasher 515595 3375
doof 120 male stoneman fister 1182797 131728
laechan 120 male elf slasher 5000000 9593
dofela 120 female elf clerical 126613 UNDEFINED
cloudwu 120 female human fister 1153211 7600
run 120 female devil clerical 5000000 710439
例四:
秀出单一玩家资料
> select level,hp_src,sp_src,pp_src from users where name = bahamudo
name level hp_src sp_src pp_src
========================================================
bahamudo 120 730377 1223067 715276
一、where xx < oo 的部份还没写(复制贴上即可).
二、系统自动对 livings 做 group_by 的动作(避免 q 出多个一样的怪物)
三、我打算新增 eqs 及 wps 及 objs 三种资料库
四、where xx1 = oo1 & xx2 = oo2 ... 这个能做的话会尽量做出来.
五、当然我会希望它能显示较佳的排版
六、我会试看看能否 select 出 战斗力 这样的东西, 或者在 order by
时能否以战斗力做为 order by 的依据(或者 技能数 这样的东西)
(不过这个只限在资料库为 users 时, 这应该做的到)
七、我可能会新增一个语法,它可以挑出某资料含有特定关键字的资料
> select xxx from livings where short contains guard order by level desc
可以让程式去找名字(含ID)中有 guard 的所有怪物再依 level 做筛选
在某些方面这个东西比 checking 好用, wiz.3 以上的巫师可自行试试,
若原先你不会 sql 语法的话,透过练习这个指令,你有机会很快上手sql
语法。
写这东西还有另一个目的,例如我想做相关资料的综合查询时,这个很方
便,例如同时 select 出玩家的 sword, swordmaster, nine-sword 等做
列表.
(不过目前判断还没写的很严谨)
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: laechan 来自: 118.170.105.31 (11/08 01:35)