update批量修改(原生PHP)

使用方法:MySQL case when

MySQL 的 case when 的语法有两种:

  1. 简单函数 
    CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END
  2. 搜索函数 
    CASE WHEN [expr] THEN [result1]…ELSE [default] END

demo:

// 批量数据初始化
$update_data = [];
$update_data[] = [
	'id' => $v['id'],
	'start_time' => $start_time,
	'end_time' => $end_time
];

// 字段数数据整合
$field_start_time = ''; // 列1
$field_end_time = ''; // 列2
$ids = []; // 筛选条件(in)

// 循环拼接各字段sql 获取in条件
foreach($update_data as $v){
	$field_start_time .= 'WHEN '.$v['id'].' THEN "'.$v['start_time'].'" ';
	$field_end_time .= 'WHEN '.$v['id'].' THEN "'.$v['end_time'].'" ';
	$ids[] = $v['id'];
}

// 拼接最终sql
$sql = 'UPDATE plan SET start_time = (CASE id '.$field_start_time.' END), end_time = (CASE id '.$field_end_time.' END) WHERE id IN ('.implode(',', $ids).')';

// 执行
$db->exec($sql);

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值