MySQL根据多条id维护对应字段-批量修改
//取出 market_price 表中的json数据,然后找出json数据中需要的字段
//根据 id 维护 market_price 表中的 min_price 字段
$result = Db::name('market_price')->column('market_price_data', 'id');
$sql = 'UPDATE market_price SET min_price = CASE id ';
foreach ($result as $id => $market_price_data){
$min_price = 0;
$market_price_data = json_decode($market_price_data, true);
if($market_price_data){
$prices = array_column($market_price_data, 'price');
array_multisort($prices, SORT_ASC, $market_price_data);
$min_price = $prices[0];
}
$sql .= ' when ' . $id . ' then ' . $min_price;
}
$sql .= ' end where id > 0';
// $sql .= ' end where id in (' . implode(',', array_keys($result)) . ')';
$res = Db::query($sql);