题主你好,
使用regexp_replace函数替代replace函数即可实现.
代码及测试截图如下:
*.测试是的是我自己的表,按照你问题中的参数来说, 将语句改为:
update ab set name=regexp_replace(cd, '^t', 'T')
-----
希望可以帮到题主, 欢迎追问.
function getFirstCharter($str){if(empty($str)){return ''}
$fchar=ord($str{0})
if($fchar>=ord('A')&&$fchar<=ord('z')) return strtoupper($str{0})
$s1=iconv('UTF-8','gb2312',$str)
$s2=iconv('gb2312','UTF-8',$s1)
$s=$s2==$str?$s1:$str
$asc=ord($s{0})*256+ord($s{1})-65536
echo $asc
if($asc>=-20319&&$asc<=-20284) return 'A'
if($asc>=-20283&&$asc<=-19776) return 'B'
if($asc>=-19775&&$asc<=-19219) return 'C'
if($asc>=-19218&&$asc<=-18711) return 'D'
if($asc>=-18710&&$asc<=-18527) return 'E'
if($asc>=-18526&&$asc<=-18240) return 'F'
if($asc>=-18239&&$asc<=-17923) return 'G'
if($asc>=-17922&&$asc<=-17418) return 'H'
if($asc>=-17417&&$asc<=-16475) return 'J'
if($asc>=-16474&&$asc<=-16213) return 'K'
if($asc>=-16212&&$asc<=-15641) return 'L'
if($asc>=-15640&&$asc<=-15166) return 'M'
if($asc>=-15165&&$asc<=-14923) return 'N'
if($asc>=-14922&&$asc<=-14915) return 'O'
if($asc>=-14914&&$asc<=-14631) return 'P'
if($asc>=-14630&&$asc<=-14150) return 'Q'
if($asc>=-14149&&$asc<=-14091) return 'R'
if($asc>=-14090&&$asc<=-13319) return 'S'
if($asc>=-13318&&$asc<=-12839) return 'T'
if($asc>=-12838&&$asc<=-12557) return 'W'
if($asc>=-12556&&$asc<=-11848) return 'X'
if($asc>=-11847&&$asc<=-11056) return 'Y'
if($asc>=-11055&&$asc<=-10247) return 'Z'
return null
}
echo getFirstCharter('李')
删除firstkey的第一个字符,就可以理解为从第二个字符取到结束,然后来个update就行了。楼上你这样写可能会出错。因为过firstkey的长度是len(firstkey),你现在要从第二位取,且还是len(firstkey)这么个长度,那最后一个字符就有可能出错。
最好改为:
update
set
firstkey=substring(firstkey,2,len(firstkey)-1)
where
pro='机械系'
and
class='数学'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)