|
发表于 2008-7-12 09:10:39
|
显示全部楼层
来自 中国–广东–深圳–罗湖区
回复: 使用 ADO 模块连接 Access、SQL Server、dBase、FoxPro、Oracle 等多种数据库
Post by zwfgdlc
今天试了下,这样会漏掉第一条记录,直接从第二条记录读取.
看了斑竹的代码示例,这几天研究了一下,还是不怎么明白。
在插件里面存取玩家的数据是在玩家进服的时候从数据库读取,离线的时候存数据。
但是遇到玩家中途改名字怎么办?是不是要每局开始和完毕就读取和存储排名数据?
[php]
CREATE TABLE `shop` (
`article` int(4) unsigned zerofill NOT NULL default '0000',
`dealer` char(20) NOT NULL default '',
`price` double(16,2) NOT NULL default '0.00',
PRIMARY KEY (`article`,`dealer`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `shop` (`article`, `dealer`, `price`) VALUES
(0001, 'A', 3.45),
(0001, 'B', 3.99),
(0002, 'A', 10.99),
(0003, 'B', 1.45),
(0003, 'C', 1.69),
(0003, 'D', 1.25),
(0004, 'D', 19.95);
[/php]
查询代码
[php]
SELECT article, dealer, price, (SELECT count(1) + 1 FROM shop WHERE price > s.price) as level FROM shop s WHERE dealer = 'B' ORDER BY level DESC
[/php]
仿照上面的怎么写php查询排名代码?不理解count(1) + 1 ,有的写SELECT count(*) as count.不理解这部分基础的sql。
第二个代码实例
[php]
SQL Server中,有一个表储存商户交易信息,表结构如下
表名 BM 日期 商户名称 交易金额
现要查1年内交易排名前100名得商户
[/php]
查询代码
[php]
select 编号,数量,(select count(*)+1 as 排名 from 表名 b where b.数量>a.数量) as 排名 from 表名 a order by 数量 desc
[/php]
CS 排名数据结构
[php]
idno CSID 杀人数 死亡数 暴头数
[/php]
idno自动增加。要实现根据csid查询玩家排名怎么查。玩家排名的规则是 (杀人数- 死亡数+2* 暴头数) |
|