【问题标题】:SQL query: Copy all rows with Store_ID = 1SQL 查询:复制所有 Store_ID = 1 的行
【发布时间】:2015-07-07 16:35:53
【问题描述】:

我有一个表 review_store 有两列:review_idstore_id 如果我必须用 2 替换 1,我会这样做:

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

如何将 store_ID = 1 的每一行复制/复制到 Store_ID = 2 ?

【问题讨论】:

    标签: mysql sql magento review


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:
      INSERT INTO review_store (review_id, store_id)
      SELECT review_id, 2
      FROM review_store 
      WHERE store_id = 1
      

      【讨论】:

        【解决方案3】:
        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 之前,则需要重新排序选择。

        【讨论】:

        • VALUES 和 SELECT 版本的 INSERT 不能合并;并且不在 INSERT 中指定目标字段是非常糟糕的做法。
        猜你喜欢
        • 2013-10-07
        • 2013-03-04
        • 1970-01-01
        • 1970-01-01
        • 2010-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-15
        相关资源
        最近更新 更多