首页 » MySQL » 正文

用mysql的替代函数来解决php中替代的时间超时

今天小涛用php语法写了一个替换函数,比如把字段create_time字段中的数据“2008年”替换成“2008”,就是把“年”去掉,我刚开始时这样处理的:

$Model    =    M(“CompanyData”);
$list    = $Model ->field(‘id,create_time’)->select();
foreach($list as $val)
{
if(!empty($val['create_time'])||$val['create_time']!=’NULL’)
{
$newTime    =    preg_replace(‘/年/’,”,$val['create_time']);
$Model->where(“id=”.$val['id'])->setField(‘create_time’,$newTime);
}
}

这里是用到了php的preg_replace函数,刚开始还没遇到问题,到后来数据量很大的时候,循环的效率很低的,当还没循环完php已经报错超时,解决方法很简单,就是更改php.ini中的max_execution_time = 30 的配置,吧时间改大一些就可以了,不过这个解决办法不是很好,如果不是自己的服务器,又没有更改服务器的权限,那改怎么办呢?小涛来告诉你一个最佳的解决方法:就是运用mysql的replace的替换函数,手册是这样写的:

经过改动达到自己的需求:

set names ‘utf8′;
update zone_company_data  set create_time= REPLACE(create_time,’年’, ”);

这样操作,与php操作替换速度快的很,要不要尝试一下呢?

技术分享,技术交流,小涛与您共同成长……

发表评论