在后台的curl中经常遇到 单字段多值修改,比如 排序,批量 修改名字 等。
需要一个 key为id的数组,这个很简单,在循环的时候 name[ $id ],这样接收到就是id为key的数组了。
这时就要拼接sql语句了。加入数组为 $data
$ids = implode(',', array_keys($data)); //得到id字符串
$sql="UPDATE `tableName` SET `tableField` = CASE id "
foreach( $data as $id => $v ){
$sql .= sprintf("WHEN %d THEN %s ", $id, "'{$v}'");
}
$sql .= "END WHERE id IN ($ids)";
这样sql语句就拼接好了。
这是一个举例的sql。
UPDATE `type` SET title = CASE id WHEN 1 THEN '发动机' WHEN 2 THEN '底盘' WHEN 3 THEN '电器及设备' WHEN 4 THEN '车用仪表' WHEN 5 THEN '灯饰' WHEN 6 THEN '空调系' WHEN 7 THEN '润滑油' WHEN 8 THEN '易损易耗品' WHEN 9 THEN '养护品' WHEN 10 THEN '维修工具设备' WHEN 11 THEN '增值服务' END WHERE id IN (1,2,3,4,5,6,7,8,9,10,11)