php 写sql,获取下一级的code

/// <summary>
/// 得到下一个ID  任何顶级分类的前缀是0001
/// </summary>
/// <param name="tableName">表名</param> ecs_category
/// <param name="fieldName">字段名</param> cat_code
/// <param name="prefix">前缀</param> 父类的cat_code
/// <param name="initValue">初始值</param> 父类的cat_coade.'0001'
/// <param name="whereSentence">WHERE子句</param> SUBSTRING(cat_code,1,LENGTH(前缀))=前缀 and LENGTH(cat_code)=LENGTH(初始值)
/// <returns>下一个ID字符串</returns>
function  GetNextID($parent_id)
{
$initValue="";//初始值
$prefix="";//前缀
$theSql = "";
if ($parent_id==0){
$prefix="";
$initValue="0001";
}else{
$sql="select cat_code from ecs_category where cat_id=$parent_id";
$prefix=$GLOBALS['db']->getOne($sql);
$initValue=$prefix."0001";
}


$theSql="SELECT CASE WHEN MAX(cat_code) IS NULL THEN '$initValue' ELSE
CONCAT('$prefix', LPAD(max(substring(cat_code,LENGTH('$prefix')+1,LENGTH('$initValue')-LENGTH('$prefix')))+1,LENGTH('$initValue')-LENGTH('$prefix'),'0'))   end
as NEXT_ID from ecs_category  where SUBSTRING(cat_code,1,LENGTH('$prefix'))='$prefix' and LENGTH(cat_code)=LENGTH('$initValue')";
$nextID=$GLOBALS['db']->getOne($theSql);
 
// echo $theSql;echo '<br/>';
// echo $nextID;echo '<br/>';

return $nextID;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值