mysql批量更新,每条数据都不一样怎么办

UPDATE user
   SET age = CASE id 
       WHEN 1 THEN 3 
       WHEN 2 THEN 4 
       WHEN 3 THEN 5 
   END
WHERE id IN (1,2,3)

php示例

$display_order = array( 
    1 => 4, 
    2 => 1, 
    3 => 2, 
    4 => 3, 
    5 => 9, 
    6 => 5, 
    7 => 8, 
    8 => 9 
); 
$ids = implode(',', array_keys($display_order)); 
$sql = "UPDATE user SET age= CASE id "; 
foreach ($display_order as $id => $ordinal) { 
    $sql .= sprintf("WHEN %d THEN %d ", $id, $ordinal); 
} 
$sql .= "END WHERE id IN ($ids)"; 
echo $sql;
posted @ 2023-10-19 10:13  朝阳1  阅读(104)  评论(0编辑  收藏  举报