본문 바로가기
MySql

MySQL 동일한 테이블에있는 다른 행의 데이터로 행 업데이트

by 베이스 공부 2020. 10. 12.
반응형

이렇게 생긴 테이블이 있어요

ID   |   NAME    |  VALUE  |
----------------------------
 1   |   Test    |  VALUE1 |
 2   |   Test2   |  VALUE2 |
 1   |   Test2   |         |
 4   |   Test    |         |
 1   |   Test3   |  VALUE3 |

동일한 'NAME'을 가진 'VALUE'열에있는 다른 행의 데이터로 'Test2'및 'Test'값을 업데이트하는 방법을 찾고 있습니다 (ID는 여기서 고유하지 않습니다. ID의 복합 키 및 NAME은 행을 고유하게 만듭니다). 예를 들어 내가 찾고있는 출력은 다음과 같습니다.

ID   |   NAME    |  VALUE  |
----------------------------
 1   |   Test    |  VALUE1 |
 2   |   Test2   |  VALUE2 |
 1   |   Test2   |  VALUE2 |
 4   |   Test    |  VALUE1 |
 1   |   Test3   |  VALUE3 |

다른 테이블에 있으면 괜찮지 만 동일한 NAME 값을 사용하여 현재 테이블 내에서 다른 행을 참조 할 수있는 방법을 잃어 버렸습니다.

최신 정보

manji 쿼리를 수정 한 후 다음은 작업 솔루션에 사용한 쿼리입니다. 모두 감사합니다!

UPDATE data_table dt1, data_table dt2 
SET dt1.VALUE = dt2.VALUE 
WHERE dt1.NAME = dt2.NAME AND dt1.VALUE = '' AND dt2.VALUE != '' 

 

해결 방법

 

이 시도:

UPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE
                        FROM data_table
                       WHERE VALUE IS NOT NULL AND VALUE != '') t1
   SET t.VALUE = t1.VALUE
 WHERE t.ID = t1.ID
   AND t.NAME = t1.NAME

 

참조 페이지 https://stackoverflow.com/questions/5574434

 

 

반응형

댓글