Копировать значения из одного столбца в другой в одной таблице

Как я могу сделать копии из одного столбца в другой? У меня есть:

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

Я хочу иметь:

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

Какой запрос mysql я должен иметь?

Ответ 1

Краткий ответ для рассматриваемого кода:

UPDATE 'table' SET test=number

Здесь table - это имя таблицы, и оно окружено серьезным акцентом (так называемые обратные тики), так как это соглашение MySQL по экранированию ключевых слов (и в этом случае TABLE - это ключевое слово).

ВНИМАНИЕ, что это довольно опасный запрос, который уничтожит все в test столбца в каждой строке таблицы, заменив его number (независимо от его значения)

Более распространено использование WHERE, чтобы ограничить ваш запрос только определенным набором строк:

UPDATE 'products' SET 'in_stock' = true WHERE 'supplier_id' = 10

Ответ 2

UPDATE 'table_name' SET 'test' = 'number'

Вы также можете выполнять любые математические изменения в процессе или использовать функции MySQL для изменения значений.

Ответ 3

попробуй это:

update 'list'
set 'test' = 'number'

Ответ 4

BEWARE: порядок столбцов обновления является критическим

ХОРОШЕЕ: то, что я хочу, сохраняет существующее значение состояния для 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;

Ответ 5

попробуйте следовать:

UPDATE 'list' SET 'test' = 'number' 

он создает копию всех значений из "числа" и вставляет ее в "test"

Ответ 6

После работал для меня..

  1. Убедитесь, что вы не используете безопасный режим в своем приложении редактора запросов. Если да, отключите его!
  2. Затем выполните следующую команду sql

для таблицы скажем: "test_update_cmd", столбец исходных значений col2, столбец значений целевого значения col1 и столбец условий col3: -

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

Удачи!

Ответ 7

вы можете сделать это с помощью процедуры также, чтобы у меня была процедура для этого

 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 ;