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

 

如表1(test1)

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

 

mysql字段转换,数据覆盖以及更新sql写法_第1张图片

 

表2(test2)

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

 

mysql字段转换,数据覆盖以及更新sql写法_第2张图片

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

mysql字段转换,数据覆盖以及更新sql写法_第3张图片

mysql字段转换,数据覆盖以及更新sql写法_第4张图片

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

mysql字段转换,数据覆盖以及更新sql写法_第5张图片

mysql字段转换,数据覆盖以及更新sql写法_第6张图片

mysql字段转换,数据覆盖以及更新sql写法_第7张图片

如果想改更多相同唯一索引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

 

你可能感兴趣的:(mysql,mysql)