다른 행을 기반으로 특정 기준에 따라 특정 행을 업데이트하려고합니다.mysql - 다른 행을 기반으로 행을 업데이트하십시오.
COLUMNS: time type genre doubles triples
ROW 1: 2010.06.21 12:00 1 1 0 0
ROW 2: 2010.06.21 12:00 1 2 0 0
ROW 3: 2010.06.21 12:00 1 1 0 0
ROW 4: 2010.06.21 12:00 2 3 0 0
ROW 5: 2010.06.22 12:00 2 2 0 0
ROW 6: 2010.06.22 12:00 2 3 0 0
ROW 7: 2010.06.22 12:00 1 1 0 0
나는 다음과 같은 규칙에 따라 doubles
및 triples
열을 업데이트 할 찾고 있어요 것은 : 테이블은 다음과 같습니다 말할 수 있습니다
1) 만 행을 업데이트 보는 경우 행 사이의 time=time
및 type=type
(예 : 행 1,2,3 및 행 5 & 6).
2) 다음 두 가지 genres
후 1로 doubles
열 변화가 있는지 세가있는 경우와, 또는 다음 SO 예에 대해 1로 triples
열을 변경 행만 간의 상이한 genre
년대의 # 카운트 위의 행 1,2,3의 표는 doubles=1
입니다. 왜냐하면 3 개의 행 사이에는 두 개의 장르가 있기 때문입니다. 행 5와 6은 행 사이에 두 개의 다른 장르가 있기 때문에 doubles=1
이됩니다.can = 1이고 triples
can = 1이지만 둘 다 사용할 수는 없습니다.
자, 내가 생각하기에이 규칙에 기반한 PHP를 작성할 수는 있지만, mysql에서 모든 것을 할 수있는 방법이 있는지 궁금합니다. 나는 항상 당신이 SQL 문에서 할 수있는 양에 놀란 것처럼 보인다.
어쩌면합니다 (doubles
및 triples
컬럼에 대한 두 개의 서로 다른 문) 같은 :
복식 - UPDATE myTable SET (doubles=1) WHERE time=time AND type=type
...하지만 당신은 위의 규칙 # 2를 차지 얼마나 (독특한 장르와 행의 카운트 수).
mysql에서 가능한가요? 아니면 여기 PHP로 바꿀 수 있습니까? 미리
감사
감사합니다. 나는 이걸 가지고 약간 놀아서 어떻게 작동하는지 알려 드리겠습니다. – themerlinproject