日期:2014-05-20  浏览次数:20820 次

比如班级号049101,在其后面加学生号如:04910101,04910102....后面2位数中递增.后面两为99后不能在加,怎么写代码判断数据库里(mysql)的
比如班级号049101,在其后面加学生号如:04910101,04910102....后面2位数中递增.后面两为99后不能在加,怎么写代码判断数据库里(mysql)的学号的最大值然后在加1呢?

------解决方案--------------------
为什么不在学生表中加入一个班级ID,然后在加上一个学生在班级中的ID,这样处理起来更方便.
按照你现在的情况,如果你要获得某个班级中的学生ID大小,应该可以这样
SELECT MAX(学生号) FROM 学生 WHERE 学生号 LIKE '049101% '
以获得同一班级的最大学好
------解决方案--------------------
select lpad(nvl(max((TO_NUMBER(BOOK_ID))+ 1),1), 5, '0 ') BOOK_ID
from BOOK_TABLE

oracle里的连番的实现 mysql没用过,试着改一下吧
------解决方案--------------------
在表里作为主键的话,是不是也可以写成一个hilo seq的规则,高位为班级号,低位位学号