您的位置:首页 > 数据库 > MySQL

MySQL:原表修改后,如何更新关联表

2017-08-24 11:53 162 查看
去掉两表关联字段的首尾空格

UPDATE db.table_a SET name=REPLACE(name,' ','')
UPDATE db.table_b SET name=REPLACE(name,' ','')


检查表 a 是否有重复数据

SELECT name FROM db.table_a GROUP BY name HAVING COUNT(name)>1


有,则去重(去重规则按实际要求,此处只保留 id 最小的一条记录)

DELETE FROM db.table_a WHERE id NOT IN(
SELECT minid FROM(SELECT MIN(id) as minid FROM db.table_a GROUP BY name) a
)


修改表 b 中关联的 a.name ,修改关联的 a.id(数据量大时,该 SQL 执行速度较慢)

UPDATE db.table_b b,db.table_a a
SET b.id = a.id
WHERE b.name = a.name
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql