我有一个名为“test”的表,它有 4 列,id、name、address、telephone。有很多重复的数据。我想要的是查询以使用“/”将电话号码添加到第一行并删除其他行。请看图片。
问问题
62 次
2 回答
-1
快速尝试。
您可以这样做将所有电话号码添加到第一条记录(逗号分隔,您可以添加一个参数来将其更改为斜杠,但这将是一个更糟糕的主意)
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
请注意,这将为您提供一个名称/地址的分隔电话号码列表,这是将来处理的主要难题,并且表明数据库设计不当。
于 2013-06-25T11:20:23.640 回答
-2
要删除其他数据,请使用您的 PHPMuAdmin 界面,您可以删除它们或构建一个管理页面,您可以在其中动态编辑和删除数据库中的数据
于 2013-06-25T11:06:56.470 回答