gpt4 book ai didi

mysql - 使用条件将内容添加到同一列 - SQL

转载 作者:行者123 更新时间:2023-11-29 08:00:05 25 4
gpt4 key购买 nike

我在这方面遇到了麻烦。我有一张 table :

表测试1

Id_keyword Id_product
2 1280
2 1281
3 1280
4 3478
4 3912
5 1280
etc.

表测试2

ID_product      Tag
1
2
3
4
...
1280 2,3,5
1281 2
etc.

我需要添加到表 test1 Id_keyword 中的标签列,如下所示 - 2,3,5

我尝试了类似的操作,但不知道如何制定条件 - 如果找到product_id,它将添加到列中 用逗号标记keyword_id,如果找到相同的product_id,它将添加到内容:

UPDATE test2 SET Tag=(SELECT id_keyword FROM test1 WHERE test1.Id_product=test2.ID_product)

有人可以帮我吗?我找不到任何解决方案。

最佳答案

您只需进行简单的更新连接即可;

UPDATE test2
JOIN (
SELECT id_product, GROUP_CONCAT(id_keyword ORDER BY id_keyword) tag
FROM test1 GROUP BY id_product) z
ON z.id_product = test2.id_product
SET test2.tag = z.tag

这会将 test2 与一个查询连接起来,该查询将所有 id_keywords pr id_product 连接到一个名为 tag 的临时字段中,并将该标签值分配给 test2.tag。

A simple SQLfiddle to test with .

正如 @strawberry 在评论中指出的那样,将数据逗号分隔存储在表中以便稍后将其作为单独的项目进行查询并不是一个好主意,因为数据库将不再能够优化以任何方式查询。如果这就是您所尝试的,最好将存储的数据保持标准化,就像它已经存储一样。

关于mysql - 使用条件将内容添加到同一列 - SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24054036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com