Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- MYSQL
- 주식 청약 일정
- 7월 공모주 청약 일정
- 제이쿼리
- Stock ipo
- 주식
- Eclipse
- java
- css
- SQL
- html
- linux
- codeigniter
- IPO
- Stock
- 자바
- Oracle
- 코드이그나이터
- 오라클
- JavaScript
- 공모주 청약 일정
- 공모주 청약
- 주식 청약
- 자바스크립트
- 공모주
- 6월 공모주 청약 일정
- 맥
- jquery
- 리눅스
- php
Archives
- Today
- Total
개발자의 끄적끄적
[Mysql] Select결과를 Update 문에 반영하기 [펌] 본문
728x90
반응형
[Mysql] Select결과를 Update 문에 반영하기 [펌]
1. 일반적인 Update문
일반적인 Update문은 아래와 같은 방식을 아래와 같은 방식이다.
UPDATE
[테이블명]
SET
[필드명 = 새로운 값]
WHERE
[조건문]
2. Select 결과와 Join
앞서 말한 것 처럼, Mysql과 다른 DB프레임워크의 방식이 다르다.
Mssql 버전
UPDATE
[테이블A]
SET
[테이블A].필드 = [테이블B].필드
FROM
[테이블A],[테이블B]
WHERE
[테이블A].id = [테이블B].id
Mysql 버전
UPDATE
[테이블A],[Select 질의] B
SET
[테이블A].필드 = B.필드
WHERE
[테이블A].id = B.id
오라클 버전
UPDATE
[테이블A] A
SET
A.필드 = [SELECT B.필드 FROM 테이블B B WHERE B.id = ###]
WHERE A.id = ###;
아래는 Mysql에서, 실제 시즌 랭킹의 상위 %별로, 그 점수를 유저의 재화로 UPDATE하고 있는 예제이다.
UPDATE
UserMoney as um,
(SELECT user_id, curr FROM
(SELECT
id as user_id,
@prev := @curr as prev,
@curr := point as curr,
@rank := IF(@prev > @curr, @rank+@ties, @rank) AS rank,
(@rank/@total)*100 as percentrank
FROM
(SELECT * FROM UserPoint WHERE season = 3) c,
(SELECT
@curr := null,
@prev := null,
@rank := 0,
@ties := 1,
@total := count(*) from UserPoint where play_count > 10 and season = 3) b
ORDER BY
point DESC ) a
WHERE percentrank >= 0 AND percentrank <= 1) d
SET
um.energy = d.curr
WHERE um.id = d.user_id;
출처: https://shakddoo.tistory.com/entry/Mysql-Select결과를-Update-문에-반영하기 [겨울팥죽 여름빙수]
반응형
'개발 > sql' 카테고리의 다른 글
[MySQL] 서브쿼리 ( subquery ) [펌] (0) | 2020.06.28 |
---|---|
[mysql] SELECT 결과값을 UPDATE하기 (0) | 2020.06.28 |
[sql] MySQL Data Truncated 경고 메시지 해결 방법 [펌] (0) | 2020.06.27 |
[MySQL] Select한 값으로 Update (0) | 2020.06.26 |
[MySQL] MySQL 마이그레이션 [펌] (0) | 2020.06.25 |
Comments