补充:
说过了,在你的积分表中增加一列等级积分上限,这个表就有用了。这样当修改你的积分表的时候,级别显示就会跟着变,就不存在写死的问题了。
***************************
你的数据库是这样,没有办法,只能用case语句一个一个找,如果你嫌麻烦,建议在【积分表】中加一个【等级积分上限】字段。
如:【2,士兵,200,499】代表积分在【200到499】之间的是【士兵】,这样sql写起来就简单多了。
select A.用户号,A.用户名,A.积分,B.等级名称 from 用户表 A,积分表 B where A.积分<=B.积分上限 and A.积分>=B.积分
这样一下就定位了,B表只有一个字段确实不好定义。
---
以上,希望对你有所帮助。
CREATE TRIGGER tri_更新会员等级ON 会员表
AFTER UPDATE,INSERT
AS
BEGIN
UPDATE 会员表 SET 会员等级号=(
SELECT (CASE WHEN t1.积分>=100 AND t1.积分<500 THEN '02'
CASE WHEN t1.积分>=500 AND t1.积分<1000 THEN '03'
CASE WHEN t1.积分>=100 THEN '04'
ELSE '01'
) AS [会员等级号]
FROM (SELECT * FROM 会员表 WHERE 会员编号=(SELECT TOP(1) 会员编号 FROM INSERTED))AS t1
) WHERE 会员编号=(SELECT TOP(1) 会员编号 FROM INSERTED)
END
1,安装一个数据库系统,建议mysql,简单,免费2,在mysql中创建一个数据库
create database tanchishe
3,创建数据表
use tanchishe
create table record(
id int primary key auto_increment,
username char(20),
count int
)
4,程序中链接数据库,以java语言为例:
导入数据库链接jar包,如mysql-connector-java-5.1.6-bin.jar
加载驱动类:
Class.forName("com.jdbc.mysql.Driver")
获取链接:
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/tanchishe","数据库帐号","数据库密码")
书写sql语句:
String sql="insert into record(username,count) values(?,?)"
获取处理sql语句的对象:
PreparedStatement pstm=conn.preparedStatement(sql)
设置要插入的数据:
pstm.setString(1,玩家名称)
pstm.setInt(2,此次得分)
执行sql语句:
pstm.executeUpdata()
查询数据得到排行榜:
String sql2="select * from record order by count desc"
pstm=conn.preparedStatement(sql2)
执行查询,得到结果集:
ResultSet rs=pstm.executeQuery()
遍历rs,得到集合:
List<Record>records=new ArrayList<Record>()
while(rs.next()){
Record r=new Record()
r.setId(rs.getInt("id"))
r.setUserName(rs.getString("username"))
r.setCount(rs.getInt("count"))
records.add(r)
}
得到集合records
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)