php – 更新和删除合并记录的查询

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 更新和删除合并记录的查询脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一张包含以下记录的表格

id | fname | lname | skills 

22 | Jane |  Doe | PHP,MysqL 
43 | Jane |  Doe | java,oracle,PHP
45 | Jane |  Doe | mongo,MysqL

id是主键.我想执行一个查询,以便在表中看起来像这样

id | fname | lname | skills 

45 | Jane |  Doe | PHP,MysqL,java,mongo

技能将与最新的id和其他重复记录合并删除

任何帮助对我都非常有用.

解决方法

试试这个:

UPDATE YourTable t
INNER JOIN(SELECT max(s.id) as max_id,s.fname,s.lname,GROUP_CONCAT(distinct(s.skills)) as skill_str
           From YourTable s
           group by s.fname,s.lname) t1
 ON (t.lname = t1.lname and t.fname = t1.fname AND t.id = t1.max_id)
SET t.skills = t1.skill_str

这会将表更新为您想要的concat,然后删除

DELETE From YourTable t
WHERE t.ID NOT IN(SELECT MAX(s.id) FROM YourTable s
                  GROUP BY s.lname,s.fname)

只有当ID是唯一的时,删除才有效!它将删除所有不是最大ID的记录

编辑:试试这个:

DELETE t
FROM candidate t
LEFT JOIN(SELECT MAX(s.candidate_id) as max_id FROM candidate s
          GROUP BY s.fname,s.lname) t1
 ON (t.candidate_id = t1.max_id)
WHERE t1.max_id is null

脚本宝典总结

以上是脚本宝典为你收集整理的php – 更新和删除合并记录的查询全部内容,希望文章能够帮你解决php – 更新和删除合并记录的查询所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。