집 >데이터 베이스 >MySQL 튜토리얼 >단일 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!