Копировать значения из одного столбца в другой в одной таблице
Как я могу сделать копии из одного столбца в другой? У меня есть:
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
После работал для меня..
- Убедитесь, что вы не используете безопасный режим в своем приложении редактора запросов. Если да, отключите его!
- Затем выполните следующую команду 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 ;