> 데이터 베이스 > MySQL 튜토리얼 > 단일 MySQL 쿼리에서 여러 행을 다른 값으로 업데이트하려면 어떻게 해야 합니까?

단일 MySQL 쿼리에서 여러 행을 다른 값으로 업데이트하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2025-01-17 11:17:14
원래의
219명이 탐색했습니다.

How Can I Update Multiple Rows with Different Values in a Single MySQL Query?

다양한 값으로 여러 MySQL 행을 효율적으로 업데이트

MySQL은 단일 쿼리에서 고유한 값으로 여러 행을 업데이트할 수 있는 여러 가지 방법을 제공합니다. IF 문도 작동할 수 있지만 CASE 문은 특히 여러 조건을 처리할 때 더욱 간결하고 읽기 쉬운 솔루션을 제공합니다.

특정 사무실 내의 사용자 역할에 따라 다양한 table_users 값을 할당하여 cod_user 테이블을 업데이트해야 하는 시나리오를 생각해 보겠습니다. 여러 IF 문을 사용하는 것보다 더 깔끔한 접근 방식이 아래에 나와 있습니다.

이 쿼리는 CASE 문을 활용하여 cod_user:user_rol을 기반으로

을 업데이트합니다.
<code class="language-sql">UPDATE table_users
SET cod_user = CASE
    WHEN user_rol = 'student' THEN '622057'
    WHEN user_rol = 'assistant' THEN '2913659'
    WHEN user_rol = 'admin' THEN '6160230'
    END,
date = '12082014'
WHERE user_rol IN ('student', 'assistant', 'admin')
AND cod_office = '17389551';</code>
로그인 후 복사

다음은 세부 내용입니다.

  • CASE 명령문: 이는 여러 조건을 우아하게 처리합니다. 각 WHEN 절은 조건을 확인하고 true인 경우 해당 cod_user 값을 할당합니다.
  • 여러 조건: CASE 문은 다양한 사용자 역할을 효율적으로 관리합니다.
  • date 업데이트: 일치하는 모든 행에 대해 date 필드가 '12082014'로 업데이트됩니다. 데이터베이스 설정과 일치하도록 날짜 형식(이 예에서는 'YYYYMMDD')을 조정해야 합니다.
  • WHERE 절: user_rol이 '학생', '도우미' 또는 '관리자'이고 cod_office이 '17389551'인 행에만 영향을 미치도록 업데이트를 필터링합니다.

이 방법은 여러 개의 개별 UPDATE 문이나 복잡한 중첩 IF 구조를 사용하는 것에 비해 더 효율적이고 유지 관리하기 쉬운 솔루션을 제공합니다. CASE 문은 가독성을 높이고 전반적인 쿼리 로직을 단순화합니다.

위 내용은 단일 MySQL 쿼리에서 여러 행을 다른 값으로 업데이트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿