programing

배열 값으로 열을 순차적으로 업데이트

abcjava 2023. 6. 5. 23:31
반응형

배열 값으로 열을 순차적으로 업데이트

새 열 'color'를 추가한 테이블이 있습니다.이제 기존의 모든 행을 세 가지 색상('#F00', '#0F0', '#00F') 중 하나로 순차적으로 업데이트하고자 합니다.

따라서 첫 번째 행은 #F00, 두 번째 행은 #0F0, 세 번째 행은 #00F, 네 번째 행은 #F00 등이 됩니다.

이와 같은 것:

UPDATE table_name SET color = oneOf(['#F00', '#0F0', '#00F']);

어떻게 달성할 것인가요?

MariaDB 버전 지원 창 기능이 있으면 주문 열을 사용할 수 있습니다(내 샘플 코드에서).ID순서대로 업데이트 순서를 나타내는 열)

사용할 경우CASE WHEN표현 &MOD업데이트 로직을 판단하기 위한 함수

UPDATE
    table_name AS t
INNER JOIN
    ( 
      SELECT Id, 
             row_number() OVER (ORDER BY Id) AS rn 
      FROM table_name
    ) AS sub
ON  t.Id = sub.Id
SET color = (CASE WHEN MOD(rn,3) = 1 THEN '#F00'
                 WHEN MOD(rn,3) = 2 THEN '#0F0'
                 ELSE '#00F' END)

squlifidle

언급URL : https://stackoverflow.com/questions/71521599/update-column-with-values-of-array-sequentially

반응형