繁体   English   中英

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

[英]Copy values from one column to another in the same table

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

我有:

Database name: list

-------------------
number | test
-------------------
123456 | somedata
123486 | somedata1
232344 | 34

我希望有:

Database name: list

----------------
number | test
----------------
123456 | 123456
123486 | 123486
232344 | 232344

我应该有什么 MySQL 查询?

相关代码的简短回答是:

UPDATE `table` SET test=number

这里table是表名,它被重音符(又名反引号 `)包围,因为这是 MySQL 转义关键字的约定(在这种情况下TABLE是关键字)。


谨防!

这是一个非常危险的查询,它将擦除表的每一行中列test中的所有内容,用number替换它(无论它的值如何)

更常见的是使用WHERE子句将查询限制为特定的一组行:

UPDATE `products` SET `in_stock` = true WHERE `supplier_id` = 10
UPDATE `table_name` SET `test` = `number`

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

试试这个:

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

注意:更新列的顺序很重要

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

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

BAD :Status 和 PrevStatus 最终都为 44

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

尝试以下:

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

它从“数字”创建所有值的副本并将其粘贴到“测试”

以下为我工作..

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

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

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

祝你好运!

如果有人想放置条件

更新bohf SET Sq = IDNo WHERE Table = 'AOF' AND FormSq BETWEEN 13 AND 17

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

 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 ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM