테이블 scores
을 업데이트하고 won
업데이트 된 값을 사용하여 두 번째 테이블 tbl_users
을 업데이트해야합니다. 지금까지 코드는 scores
를 업데이트하지만 두 번째 테이블 업데이트를 won
의 이전 값을 사용첫 번째 테이블의 값을 사용하여 두 테이블을 동시에 업데이트하십시오.
UPDATE scores a
left join tbl_users b on
a.uid = b.userID
SET a.won = CASE
WHEN a.nright = '0' THEN '0'
WHEN a.nright = '1' THEN '25'
WHEN a.nright = '2' THEN '50'
WHEN a.nright = '3' THEN '100'
WHEN a.nright = '4' THEN '200'
WHEN a.nright = '5' THEN '400'
WHEN a.nright = '6' THEN '700'
WHEN a.nright = '7' THEN '1000'
END,
b.pts=b.pts+a.won,
b.pts_total=b.pts_total+a.won
WHERE a.uid=$user AND b.userID=$user
업데이트되는 필드의 실제 순서는 SQL 문에 지정된 순서와 다를 수 있으며 일반적으로 기존 레코드 전체가 첫 번째 변경 전에 반입됩니다. 다른 모든 표현식에서 원 가치를 사용하여 새로운 원 가치를 계산하는 표현식을 반복해야합니다. – Shadow
스키마 및 샘플 데이터를 공유 할 수 있습니까? –