MySQL查询查找,选择多个值并添加新行

vecaoik1  于 2023-06-28  发布在  Mysql
关注(0)|答案(1)|浏览(91)

我们有一个表“catalog_category_entity_varchar”,其中列为“value”、“entity_id”、“store_id”、“value_id”和“attribute_id”。
现在我们需要添加新行,从“store_id”= 1的行中复制值,并将“store_id”=替换为3。只有“value_id”不能相同,因为这是行value_id。
所以在下面的截图中,它应该添加以下行;

12626  45  3  221  Monitoren

我们已经用类似的东西试过了,但那似乎是不对的;

INSERT INTO catalog_category_entity_varchar 
(
  SELECT value, entity_id, attribute_id, 3 AS store_id
  FROM catalog_category_entity_varchar
  WHERE store_id = 1
)

xwbd5t1u

xwbd5t1u1#

假设value_id是一个唯一的自动递增列,这是如何做到这一点:

INSERT INTO catalog_category_entity_varchar(value, entity_id, attribute_id, store_id)
SELECT value, entity_id, attribute_id, 3 AS store_id
FROM catalog_category_entity_varchar
WHERE store_id = 1

Demo here
如评论中所述:您应该指定列列表,以使代码更清晰易读。
在本例中,您必须给予列列表,因为您要从总共五列中插入四列。

相关问题