SQL 查询:复制 Store_ID = 1 的所有行

SQL query: Copy all rows with Store_ID = 1

我有一个包含两列的 table review_storereview_idstore_id 如果我必须用 2 替换 1,我会这样做:

UPDATE review_store 
SET store_id = '2' 
WHERE store_id = '1'

如何 copy/duplicate store_ID = 1 到 Store_ID = 2 的每一行?

INSERT INTO `review_store` SELECT 2, review_id FROM `review_store` WHERE store_id = 1

注意,如果你有一个id列,你应该为它添加一个空白字段,所以

INSERT INTO `review_store` SELECT '', 2, review_id FROM `review_store` WHERE store_id = 1

还要检查字段的顺序。如果 review_id 出现在 store_id 之前,您需要重新排序 select。

我假设您的意思是在同一个 table 中创建新记录。使用 INSERT SELECT

INSERT INTO review_store
SELECT review_id, '2' as Store_id
FROM review_store
WHERE Store_id = '1'
INSERT INTO review_store (review_id, store_id)
SELECT review_id, 2
FROM review_store 
WHERE store_id = 1