중복 행 삭제/업데이트에 대한 몇 가지 다른 게시물을 보았습니다. 그러나 필자의 특정 처지에 올바르게 적용하는 방법에 대해서는 약간 혼란 스러웠습니다.MYSQL에서 논리적 삭제를 위해 중복 행을 업데이트하십시오.
누군가 나를 올바른 방향으로 밀어 줄 수 있기를 바랬습니다.
내가 몇 가지 중복 행이있는 테이블이 논리적으로 1
내 테이블에으로 isDeleted 열을 설정하여 각 사용자에 대해 삭제하려는 부호 BIGINT이다 아이디라는 기본 키가, 중복 된 다른 ID를 나타내는 cid라는 열이 있습니다. cid는 사용자마다 고유하지 않지만 특정 사용자에게는 고유해야합니다.
예를 들어, 당신은 나의 테이블에서 볼 수있다 :
id | cid | userid | is_deleted
1 | 1 | 100 | 0
2 | 2 | 101 | 0
3 | 1 | 102 | 0
4 | 1 | 100 | 0
5 | 2 | 101 | 0
그래서이 경우, 사용자 번호 (100)는 동일한 두 개의 CID를 가지고 - 기록 # 1 및 기록 # 4를. 마찬가지로, 사용자 # 101은 동일한 두 개의 CID를 가지고 있습니다 - 레코드 # 2와 레코드 # 5에
내가 원하는 것은 주어진 사용자에 대해 중복 된 CID를 가져오고 is_deleted를 1로 설정하는 것입니다. 실제 행을 지 웁니다. 하나의 레코드를 is_deleted = 0으로 유지하고 싶습니다. 그래서이 방법은 그대로 유지됩니다.
그래서 내가 바라고 거라고 출력은 다음과 같습니다
id | cid | userid | is_deleted
1 | 1 | 100 | 0
2 | 2 | 101 | 0
3 | 1 | 102 | 0
4 | 1 | 100 | 1
5 | 2 | 101 | 1
내가 코드에서이 작업을 수행 할 수 있지만 오히려 복잡 할 것이다, 나는 순수한 SQL 문에 대한 몇 가지 놀라운 반응을 보았다; 누구든지 조언을하거나 해결책을 제시 할 수 있습니까?
감사합니다.