将值从一列复制到同一个表中的另一列

时间:2012-01-25 11:28:38

标签: mysql database

如何将复制值从一列复制到另一列?我有:

Database name: list
number | test
123456 | somedata
123486 | somedata1
232344 | 34

我希望:

Database name: list
number | test
123456 | 123456
123486 | 123486
232344 | 232344

我应该拥有什么mysql查询?

7 个答案:

答案 0 :(得分:325)

UPDATE `table` SET test=number

答案 1 :(得分:26)

UPDATE `table_name` SET `test` = `number`

您还可以在流程中进行任何数学更改,或使用MySQL函数修改值。

答案 2 :(得分:9)

试试这个:

update `list`
set `test` = `number`

答案 3 :(得分:6)

提示:更新列顺序至关重要

GOOD :我想要将现有的状态值保存到PrevStatus

UPDATE Collections SET  PrevStatus=Status, Status=44 WHERE ID=1487496;

不良:状态& PrevStatus最终都是44

UPDATE Collections SET  Status=44, PrevStatus=Status WHERE ID=1487496;

答案 4 :(得分:3)

尝试以下:

UPDATE `list` SET `test` = `number` 

它会创建来自" number"的所有值的副本。并将其粘贴到"测试"

答案 5 :(得分:3)

以下为我工作..

  1. 确保在查询编辑器应用程序中未使用安全模式。如果是,请禁用它!
  2. 然后运行以下sql命令
  3.   表的

    表示'test_update_cmd',源值列col2,目标   值列col1和条件列col3: -

    UPDATE  test_update_cmd SET col1=col2 WHERE col3='value';
    

    祝你好运!

答案 6 :(得分:-6)

你也可以用程序来做,所以我有一个这个程序

 DELIMITER $$
 CREATE PROCEDURE copyTo()
       BEGIN
               DECLARE x  INT;
            DECLARE str varchar(45);
              SET x = 1;
            set str = '';
              WHILE x < 5 DO
                set  str = (select source_col from emp where id=x);
            update emp set target_col =str where id=x;      
            SET  x = x + 1;
                END WHILE;

       END$$
   DELIMITER ;