값이 0 인 열을 해당 열의 최대 값으로 업데이트하려고합니다 (단일 쿼리에서).단일 쿼리의 각 업데이트에서 열을 최대 열로 업데이트하십시오.
값이 0 인 레코드가 많이 있습니다.
UPDATE table SET field = (SELECT MAX(field) + 1) WHERE field = 0;
을하지만 같은 값에 각 레코드를 업데이트합니다
나는이 일을하고있다. 각 행을 업데이트 할 때 최대 값을 얻을 수 있습니까?
값이 0 인 열을 해당 열의 최대 값으로 업데이트하려고합니다 (단일 쿼리에서).단일 쿼리의 각 업데이트에서 열을 최대 열로 업데이트하십시오.
값이 0 인 레코드가 많이 있습니다.
UPDATE table SET field = (SELECT MAX(field) + 1) WHERE field = 0;
을하지만 같은 값에 각 레코드를 업데이트합니다
나는이 일을하고있다. 각 행을 업데이트 할 때 최대 값을 얻을 수 있습니까?
다음 숫자로 시작하는 값이으로 증가하는 것으로 보입니다. 여기 하나의 방법이 있습니다 :
update table t cross join
(select @rn := max(field) from table) var
set t.field = (@rn := @rn + 1)
where field = 0;
나는 그것을 얻지 못합니다 : 왜 매회마다 업데이트가 바뀌어야합니까? 최대 값은 업데이트 이후에도 항상 최대 값입니다. –
테이블 구조를 제공 할 수 있습니까 – Snehal
@Lorenzo Marcon 0으로 3 개의 레코드가 있다고 가정합니다. 처음에 최대 값을 101로 업데이트하면 나머지 두 값은 102와 103이어야합니다. 101을 각각 넣는다. – Vitthal