[DB][mariadb] 두 행의 특정 컬럼값 교환하는 쿼리
상황
테이블에서 선택된 두 행(two rows) 에 대해서 특정 컬럼값을 서로 교환하는 쿼리
- 특정 폴더에 속한 두 파일의 순서를 서로 교환함
mysql, mariadb 디비 전용 쿼리
샘플 table schema
SQLCREATE TABLE `tm_db` (
`seq` int(11) NOT NULL,
`orders` int(11) DEFAULT NULL,
PRIMARY KEY (`seq`)
);
- seq - primary key
- orders - 교환하려는 컬럼값
아래와 같이 데이터가 존재할때
TXTseq|orders|
---+------+
1| 12| <<
2| 8|
3| 7| <<
1번과 3번의 orders를 교환하고 싶음
update join query
update 쿼리UPDATE tm_db AS t1
JOIN tm_db AS t2
ON t1.seq =1 AND t2.seq = 3
SET
t1.orders = t2.orders,
t2.orders = t1.orders;
결과 테이블
TXTseq|orders|
---+------+
1| 7| <<
2| 8|
3| 12| <<