mysql字段转换,数据覆盖以及更新sql写法

 

如表1(test1)

id u_id u_name p_id
1 1 ces1233 123
2 2 ces2333 2
3 3 ces3 3

表2(test2)

id u_id u_name p_id
1 1 ces1 1
2 4 ces4 4
3 5 ces5 5

1.把test1表中的string类型u_id转成int类型

SELECT id, CONVERT(u_id,UNSIGNED INTEGER) as u_id, u_name, p_id FROM test1;

2.如果要数据覆盖以及更新,下面建立唯一索引 u_id

INSERT INTO test2 ( u_id, u_name, p_id ) 
SELECT
	u_id,
	u_name,
	p_id 
FROM
	test1 
	ON DUPLICATE KEY UPDATE test2.u_name = test1.u_name

如果想改更多相同唯一索引u_id的其他字段就在ON DUPLICATE KEY UPDATE后面继续加字段

INSERT INTO test2 ( u_id, u_name, p_id ) 
SELECT
	u_id,
	u_name,
	p_id 
FROM
	test1 
	ON DUPLICATE KEY UPDATE test2.u_name = test1.u_name, test2.p_id = test1.p_id

猜你喜欢

转载自blog.csdn.net/qq_40202111/article/details/107339552