[mysql] 동일한 테이블의 한 열에서 다른 열로 값 복사

한 열에서 다른 열로 복사 값을 만들려면 어떻게해야합니까? 나는 가지고있다:

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`


답변

BEWARE : 업데이트 열 순서가 중요합니다

GOOD : 내가 원하는 것은 기존 Status of Status를 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';

행운을 빕니다!


답변

당신은 또한 절차와 함께 할 수 있습니다 그래서 나는 이것에 대한 절차를 가지고

 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 ;