SQL語句,使用case when 實現批量更新數據


SQL語句,使用case when 實現批量更新數據

實例一: 更新user表中id為1,2,3的記錄中的status字段當id=1時,status設為"正常";當id=2時,status設為"禁用";當id=3時,status設為"過期";

      update user set
            status = case id 
               when 1 then '正常'
               when 2 then '禁用'
               when 3 then '過期'
            end
      where id in (1,2,3);
                             

實例二:更新user表中id為1,2,3的記錄中的status、rank字段

      update user set
            status = case id 
               when 1 then '正常'
               when 2 then '禁用'
               when 3 then '過期'
            end,
            rank = case id
               when 1 then 1
               when 2 then 2
               when 3 then 3
            end
      where id in (1,2,3);
                             

實例三:更新$data數組中的記錄數不確定時,使用sql拼接的形式

      $ids = implode(",",array_column($data,'id')); //獲取所有要更新的記錄id

      $sql = "update user set status = case id ";
      foreach ($data as $item) {
          $id = $item['id'];
          $status = $item['status'];
          $sql .= " when " . $id . " then " . $status;
      }
      $sql .= " end where id in (" . $ids . ")";     
                               


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM