主键值调换--sql

主键值调换--sql

传统方法

-- 1. 将 a 转换为中间值 d
UPDATE `sometable`
SET p_key ='d'
WHERE p_key ='a';

-- 2.将 b 调换为 a
UPDATE `sometable`
SET p_key ='a'
WHERE p_key='b';

-- 3.将 d 调换为 b
UPDATE `sometable`
SET p_key='b'
WHERE p_key='d';

CASE 表达式

-- 使用 CASE 表达式完成主键值调换
-- 方法一
UPDATE `sometable`
set p_key= CASE WHEN p_key = 'a'
                THEN 'b'
                WHEN p_key ='b'
                THEN 'a'
                ELSE p_key END
	WHERE p_key IN ('a','b');
	
SELECT * FROM `sometable`;


--  方法二
UPDATE `sometable`
SET p_key = CASE  p_key
	WHEN 'a' THEN 'b'
	when 'b' THEN 'a'
	 END
	WHERE p_key IN ('a','b');
	
SELECT * FROM `sometable`;

图例

posted @ 2021-11-28 16:17  阿向向  阅读(158)  评论(0编辑  收藏  举报