반응형
mysql에서 UPDATE를 수행하는 동안 여러 행에서 고유한 값을 설정하는 방법
열이 여러 개 있는 테이블이 있습니다.각 행에 대한 연결을 알려주는 유일한 방법은 session_id입니다.
제 목표는 나이란을 난수로 업데이트하는 것입니다.
그래서 나는 다음 질문을 사용했습니다.
UPDATE userdata
SET age = (FLOOR(18 + RAND() * 62))
WHERE session_id IN
(
SELECT session_id FROM
(
SELECT DISTINCT session_id
FROM userdata
) AS temp
)
이는 정상적으로 작동하지만 모든 고유 session_id에는 여전히 여러 행이 있고 기간 값은 서로 다릅니다.이 쿼리가 수행해야 하는 작업을 수행한다는 것을 알고 있지만 동일한 session_id를 가진 각 행에 대한 고유한 연령 값을 가져오려면 어떻게 쿼리를 변경해야 합니까?
예.
session_id | age
1 25
2 35
2 35
3 51
3 51
3 51
스택 오버플로 질문은 처음이니 미리 감사드리며 친절하게 대해주시기 바랍니다.
사용해 보십시오.
update userdata
inner join (select *, (FLOOR(18 + RAND() * 62)) as age2 from userdata group by session_id) T ON T.session_id = userdata.session_id
set userdata.age = T.age2
이것은 잘못된 방향으로 보입니다.session_id가 고유하지 않은 것 같습니다(언제가 좋을까요?). 이것을 수정할 수 있는 첫 번째 방법입니다.따라서 이를 기반으로 고유한 열을 생성하려고 합니다.하지만 당신이 올바르게 지적한 것처럼 세션 ID를 기반으로 새 번호를 만들 수 없습니다. 동일하기 때문입니다.가장 확실한 솔루션은 자동 증분 열을 추가하는 것입니다.
AGENT(11) PRIMARY KEY AUTO_INCREMENT 추가 테이블 이름 변경;
언급URL : https://stackoverflow.com/questions/58220926/how-to-set-unique-values-in-multiple-rows-while-doing-update-in-mysql
반응형
'prosource' 카테고리의 다른 글
문자열에서 동일한 각 인수에 대한 변수를 지정해야 합니까?포맷? (0) | 2023.08.06 |
---|---|
jQuery를 사용하여 입력을 읽기 전용으로 만들려면 어떻게 해야 합니까? (0) | 2023.08.06 |
Uncaught TypeError: 정의되지 않은 'top' 속성을 읽을 수 없습니다. (0) | 2023.08.06 |
활동 컨텍스트 또는 응용 프로그램 컨텍스트를 호출해야 하는 경우 (0) | 2023.08.06 |
최신 Spring v4에서 옵션 본문과 함께 @RequestBody 사용 (0) | 2023.08.06 |