请教大家:关于sql中数字匹配问题
表lottery中有10万条彩票数据,
字段lottery_code表示彩票号码,
status字段表示是否中奖,0未中,1是一等奖,2是二等奖,依次类推,  
现在摇奖的号码是123456(假定彩票号码是6位数),
怎么写sql语句??更新彩票数据。

如数据库中已有数据 A买的彩票数123457
B的111115
C的是888888
本期摇奖号123456
那么 A中了5个数 应把status字段更新为2
B只中了1个 status字段更新为1
C没有任何匹配数 status更新0

(假设只有6个数,6个数一一对应为一等奖,status为1。有5个数一一对应为二等奖,status为2,依次类推。
且有顺序之分,也就是说1、2、3 和2、1、3匹配数为1)

不用在java写代码,只用sql语句怎么实现??
weiking   2006-09-25 19:22:51 评论:2   阅读:252   引用:0
thanks @2006-09-26 15:09:06  weiking
谢谢hofman,可以实现。
一个笨方法 @2006-09-26 00:40:06  hofman
刚好学校机房充值卡的密码为10位随机数字,可以作一个实验.
设初始status=0;
一等奖: status=6
update lottery set status=status+1 where lotter_code ~ '^1';  第1位为1者得1分
update lottery set status=status+1 where lotter_code ~ '^.2'; 第2位为2者得1分
update lottery set status=status+1 where lotter_code ~ '^..3'; 第3位为3者得1分
update lottery set status=status+1 where lotter_code ~ '^...4';  第4位为4者得1分
update lottery set status=status+1 where lotter_code ~ '^....5'; 第5位为5者得1分
update lottery set status=status+1 where lotter_code ~ '^.....6'; 第6位为6者得1分
得6分者为一等奖,得5分者二,类推.
实验数据库为postgresSql 8.1

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

用,就用的漂亮点。文章嘛,借花献佛喽。