【问题标题】:How to copy text column value from one row to another row in mySQL如何在mySQL中将文本列值从一行复制到另一行
【发布时间】:2011-06-12 23:44:42
【问题描述】:

我有具有列值的表首选项。此值具有文本类型。我想将 id 为 7 的行的 value 字段值复制到 id 为 1 的行的 value 字段中。请你帮忙看看如何做到这一点。我知道 MS SQL,但我是 mySQL 的新手。

create table pref
(
   id int,
   value text
)

【问题讨论】:

  • 您是否尝试过为 MS SQL 编写的 SQL?什么失败了?

标签: mysql sql sql-update


【解决方案1】:

在 MySQL 中,您不能从要更新的同一个表中使用子选择,但可以使用连接。

   UPDATE pref AS target
LEFT JOIN pref AS source ON source.id = 7
      SET target.value = source.value
    WHERE target.id = 1;

【讨论】:

  • 谢谢。我想在合并重复记录的同时更新多个字段,这个答案很容易适应我的需要。
【解决方案2】:
UPDATE
    pref
SET
    value = (SELECT value WHERE id = 7)
WHERE
    id = 1

【讨论】:

    【解决方案3】:

    在我的例子中,我试图将加密值从一行复制到同一个表中另一行的空字段中。在这种情况下,我需要将 john 的 PIN 码复制到 Jane 的 PIN 码中。

    @mohang 说得对。这是我的改编:)

    name   pin
    
    john   sdhjduwhdowodw7d87e838g83g8g3of...
    jane       
    
        //copy from field with value into empty field
    
    UPDATE my_table AS target
    LEFT JOIN my_table AS source ON source.pin != ""
    SET target.pin = source.pin
    WHERE target.pin = "";
    
        // Hurray, it works!
    
    name   pin
    
    john   sdhjduwhdowodw7d87e838g83g8g3of...
    jane   sdhjduwhdowodw7d87e838g83g8g3of...   
    

    【讨论】:

      猜你喜欢
      • 2014-06-19
      • 1970-01-01
      • 2021-12-12
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多