thinkphp 大批量升级

摘要: 升级纪录的时留意,升级是对于纪录(根据主键所意味着的纪录),因而一切升级,都务必含有主键字段名。/** * 大批量升级数据信息 * @param string $table_name * @param array $data * @param string $...

升级纪录的时留意,升级是对于纪录(根据主键所意味着的纪录),因而一切升级,都务必含有主键字段名。

/** * 大批量升级数据信息 * @param string $table_name * @param array $data * @param string $field * @return bool|false|int */function db_batch_update($table_name= ,$data=array(),$field= ){ if(!$table_name||!$data||!$field){ return false; }else{ $sql= UPDATE  .$table_name; } $con=array(); $con_sql=array(); $fields=array(); foreach ($data as $key =  $value) { $x=0; foreach ($value as $k =  $v) { if($k!=$field !$con[$x] $x==0){ $con[$x]=  set {$k} = (CASE {$field}   }elseif($k!=$field !$con[$x] $x 0){ $con[$x]=  {$k} = (CASE {$field}   } if($k!=$field){ $temp=$value[$field]; $con_sql[$x].=   WHEN  {$temp}  THEN  {$v}    $x++; } } $temp=$value[$field]; if(!in_array($temp,$fields)){ $fields[]=$temp; } } $num=count($con)-1; foreach ($con as $key =  $value) { foreach ($con_sql as $k =  $v) { if($k==$key $key $num){ $sql.=$value.$v.  end),  }elseif($k==$key $key==$num){ $sql.=$value.$v.  end)  } } } $str=implode( , ,$fields); $sql.=  where {$field} in({$str})  $res=M($table_name)- execute($sql); return $res;}

升级数据信息

array(2) { [0] =  array(15) { [ user ] =  string(6)  000243  [ cname ] =  string(6)  李杰  [ chief ] =  string(9)  代令建  [ big_area ] =  string(6)  广东省  [ newreg_num ] =  int(9) [ neword_num ] =  int(1) [ price_pat ] =  int(0) [ price_pats ] =  int(183) [ regcic_num ] =  int(13) [ free_num ] =  int(82) [ um_30d ] =  int(0) [ has_orders_clinics_num ] =  int(82) [ active_clinics_rate ] =  string(4)  100%  [ date_sample ] =  string(10)  2017-04-21  [ id ] =  string(1)  1  } [1] =  array(15) { [ user ] =  string(6)  000244  [ cname ] =  string(9)  陈晓东  [ chief ] =  string(9)  卢汉良  [ big_area ] =  string(6)  广东省  [ newreg_num ] =  int(10) [ neword_num ] =  int(4) [ price_pat ] =  int(0) [ price_pats ] =  int(3105) [ regcic_num ] =  int(15) [ free_num ] =  int(12) [ um_30d ] =  int(0) [ has_orders_clinics_num ] =  int(4) [ active_clinics_rate ] =  string(3)  27%  [ date_sample ] =  string(10)  2017-04-21  [ id ] =  string(1)  2  }}

SQL句子

UPDATE rpt_sells_daily set user = (CASE id WHEN  1  THEN  000243  WHEN  2  THEN  000244  end),&ame = (CASE id WHEN  1  THEN  李杰  WHEN  2  THEN  陈晓东  end), chief = (CASE id WHEN  1  THEN  代令建  WHEN  2  THEN  卢汉良  end), big_area = (CASE id WHEN  1  THEN  广东省  WHEN  2  THEN  广东省  end), newreg_num = (CASE id WHEN  1  THEN  9  WHEN  2  THEN  10  end), neword_num = (CASE id WHEN  1  THEN  1  WHEN  2  THEN  4  end), price_pat = (CASE id WHEN  1  THEN  0  WHEN  2  THEN  0  end), price_pats = (CASE id WHEN  1  THEN  183  WHEN  2  THEN  3105  end), regcic_num = (CASE id WHEN  1  THEN  13  WHEN  2  THEN  15  end), free_num = (CASE id WHEN  1  THEN  82  WHEN  2  THEN  12  end), um_30d = (CASE id WHEN  1  THEN  0  WHEN  2  THEN  0  end), has_orders_clinics_num = (CASE id WHEN  1  THEN  82  WHEN  2  THEN  4  end), active_clinics_rate = (CASE id WHEN  1  THEN  100%  WHEN  2  THEN  27%  end), date_sample = (CASE id WHEN  1  THEN  2017-04-21  WHEN  2  THEN  2017-04-21  end) where id in(1,2)




联系我们

全国服务热线:4000-399-000 公司邮箱:343111187@qq.com

  工作日 9:00-18:00

关注我们

官网公众号

官网公众号

Copyright?2020 广州凡科互联网科技股份有限公司 版权所有 粤ICP备10235580号 客服热线 18720358503