首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将行与同一表中的另一行进行比较

将行与同一表中的另一行进行比较
EN

Stack Overflow用户
提问于 2016-11-04 12:49:01
回答 3查看 61关注 0票数 0

我有一张桌子,其结构如下:

代码语言:javascript
运行
复制
id_language  id_product  description
1            10           AAAA
2            10           BBBB
3            10           AABB
1            11           CCCC
2            11           CCCC
3            11           CCAA

我想要做的是找到所有在两种语言中都有相同描述的产品,并将语言2的描述替换为一个空值。因此,在上面的示例中,第1行和第2行将保持不变。但是,产品11和语言2的说明将设置为"“。如下所示:

代码语言:javascript
运行
复制
id_language  id_product  description
1            10           AAAA
2            10           BBBB
3            10           AABB
1            11           CCCC
2            11           
3            11           CCAA

只使用SQL查询就可以做到这一点吗?我正在使用MySQL。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-04 13:31:23

这个方法可以工作(请参见它在sqlfiddle中运行实时这里 ):

代码语言:javascript
运行
复制
UPDATE t
JOIN (

    SELECT
    t1.id_product,
    MIN(t1.id_language) AS min_lang,
    t1.description
    FROM t t1
    JOIN t t2 ON t1.id_product = t2.id_product
    AND t1.description = t2.description
    AND t1.id_language != t2.id_language
    GROUP BY t1.id_product

) sq ON t.id_product = sq.id_product
AND t.description = sq.description
SET t.description = ''
WHERE t.id_language > sq.min_lang;
票数 0
EN

Stack Overflow用户

发布于 2016-11-04 13:02:40

假设每个产品只有两种语言,这似乎可以满足您的需要:

代码语言:javascript
运行
复制
update t join
       (select id_product, max(id_language) as maxidl
        from t
        group by id_product
        having min(description) = max(description)
       ) tt
       on t.id_product = tt.id_product and t.id_language = tt.maxidl
    set description = null;
票数 0
EN

Stack Overflow用户

发布于 2016-11-04 13:15:47

在MySql中使用这个

代码语言:javascript
运行
复制
UPDATE Table SET description=''
WHERE (id_product,id_language) in(
SELECT id_product,MAX(id_language) FROM Table
GROUP BY description,id_product 
HAVING COUNT(id_language)>1
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40423112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档