sql - 如何在sql数据库中使用相同的名称将不同的ID更新为相同的ID
问题描述
我必须消除不同的 id 并使用 SQL 中的相同产品名称列更新具有第一个 id 的 id,例如:
实际表:
id product_name
-------------------
p1 apple
p2 apple
p3 grape
p4 grape
p5 grape
更新后的表格应如下所示:
id product_name
-------------------
p1 apple
p1 apple
p3 grape
p3 grape
p3 grape
解决方案
您可以尝试加入计算目标 id 的派生表,如下所示:
update t
set t.id = x.id
from mytable t
inner join (
select product_name, min(id) id from mytable group by product_name
) x on x.product_name = t.product_name
推荐阅读
- angular - 如何覆盖 Angular > vendor.js 中定义的事件处理程序?
- mysql - 通过比较两个不同的数据库来查找缺失的表
- angular - Angular 8 忽略 includePaths
- opencart - 自定义付款/帐单地址表单字段 Opencart
- asp.net-core - 乐观并发:总是检查 RowVersion IS NULL
- c# - 在对话流意图中从谷歌帐户获取访问令牌
- ansible - Pass dictionary to jinja2 template from task loop
- r - 如何用第二个对应的字符串替换字符向量中的特定字符串?
- reactjs - 动作必须是普通对象。使用自定义中间件进行异步操作
- spring-boot - AspectJ 未在 Junit 方法上执行