mysql子查询联表更新

假设课程表courses有id、name字段。发现name有重复,且重复最大数量为2。我们对id小的一条记录的name更新为name+其它字符。

1、将courses全部重复name统计写入临时表tempname

2、子查询找到课程表中name有重复,且重复是最小id的哪条记录id

select id from courses awhere id = (select min(id) from courses t where t.name = a.name)and name in (select name from tempname)

2、子查询联表更新,如下:

update courses, (select id from courses awhere id = (select min(id) from courses t where t.name = a.name)and name in (select name from tempname)) tbset courses.name=CONCAT(courses.name,'-',RIGHT(courses.id,2))where courses.id =tb.id
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章