我有一个名为'test'的表,它有4列,id,name,address,telephone.the有很多重复的数据。我想要的是查询将电话号码添加到带有'/'的第一行并删除其他行。请看图片。
答案 0 :(得分:-1)
快速尝试。
你可以这样做将所有的电话号码添加到第一条记录(以逗号分隔,你可以添加一个parm来改为斜线,但这会更糟糕)
UPDATE test a
INNER JOIN (SELECT name, address, GROUP_CONCAT(phone) AS AllPhone, MIN(id) AS MinId FROM test GROUP BY name, address) b
ON a.name = b.name
AND a.address = b.address
AND a.id = b.MinId
SET a.phone = b.AllPhone
然后用这样的东西删除其他
DELETE a
FROM test a
LEFT JOIN (SELECT name, address, MIN(id) AS MinId FROM test GROUP BY name, address) b
ON a.id = b.MinId
WHERE b.MinId IS NULL
请注意,这将为您提供一个名称/地址的电话号码的分隔列表,这是将来要处理的主要问题,以及设计糟糕的数据库的标志。
答案 1 :(得分:-2)
要删除其他数据,请使用您的PHPMyAdmin界面,您可以删除它们或构建一个管理页面,您可以在其中动态编辑和删除数据库中的数据