不多的话,可以... ...select top 1 a.bh, b.id from
(
select '20090330001' as bh
union
select '20090330002' as bh
union
select '20090330003' as bh
union
select '20090330004' as bh
union
select '20090330005' as bh
) a
left outer join a_tp b on a.bh = b.bh
where b.id is null
order by a.bh
(
select '20090330001' as bh
union
select '20090330002' as bh
union
select '20090330003' as bh
union
select '20090330004' as bh
union
select '20090330005' as bh
) a
left outer join a_tp b on a.bh = b.bh
where b.id is null
order by a.bh
解决方案 »
- "&"这个符号是什么意思,请大虾把我解释下,谢谢!
- 为什么我在本地file_get_contens是可以获取地址内容,到了服务器上面确获取不到了
- 如何避免产生 Fatal error: Out of memory
- 无法访问ext目录下的DLL文件,请大侠及高手指点!
- PHP写文件冲突谁有办法??
- 自己做了个程序,想开源,不知有人要吗?http://www.nnrsc.com
- PHP兼容性的问题
- 救命:怎么实现Mysql的查询!
- 为什么我用不了获得ip的一大堆方法?:( 55555...
- 如何在mysql中使用union?急!在线等! 方法好像不行!
- 有一个网站,里面的图片每点一次打开的地址不一样,请问用php能获得它每次定向的地址吗?
- php信息提示??
新的记录产生时,从这个表或者xml里获取最新编号,这样每次都是递加并且是最新的.你每次搜索带有N多记录的数据表,还要进行字符串操作,效率太低.
插入后取回ID 如果不是今天的编号再UPDATE一次 UPDATE的概率不是很高 每天只有1次而已
要求查漏补缺的to:dogfish
谢谢你的帮助,但得有个通用的处理方式。
2. 用户输入ID的时候,首先判断可用编号表中该编号是否可用:
2.1 如果可用,删除该编号;
2.2 如果不可用,说明当日已经有其它用户用了该编号,系统可以建议当前表中的最小编号给用户;
3. 结合当前日期给出可用的编号;这种方法,还是不能保证某天不会出现跳号情况。所以,我不知道这么做的意义何在。最好的处理方法,是和你的客户谈谈,到底这么做的意义何在,是想避免什么问题。
判断变量与截取处理后的游标中编号对比
不相等的时候应该就是当前最小的返回这个值判断变量+1end WHILE
function createBH(){
$contact_no = date("Y").date("m").date("d"); //编号规则
$sql = "select contact_no from cx_contact where contact_no like '".$contact_no."%' order by contact_no asc";
$sql1 = "select contact_no from cx_contact where contact_no like '".$contact_no."%' order by contact_no desc";
$this->db->query($sql1);
if($this->db->next_record()){
$num=substr($this->db->Record["contact_no"],-3); //此处的数字3表示编号位数(001 002 003 .... )
//echo 'num='.$num;
if($num <> $this->db->num_rows){
$num = 0;
$this->db->query($sql);
while($this->db->next_record()){
$tnum = substr($this->db->Record["contact_no"],-3);
//echo 'tnum='.$tnum;
if($tnum - $num ==1)
$num = $tnum;
else
break;
//echo 'num='.$num;
}
}
}
else
$num=0;
//echo 'num='.$num;
$contact_no = $contact_no.sprintf("%'03s", $num+1);
return $contact_no;
}
调用这个函数得到的$contact_no就是你要的编号