답변:
해당 코드에 대한 짧은 대답은 다음과 같습니다.
UPDATE `table` SET test=number
다음 table
은 테이블 이름이며 키워드 를 이스케이프하는 MySQL 규칙이므로이 경우 중괄호 (일명 백틱)로 둘러 싸여 있습니다 ( TABLE
이 경우 키워드).
이것은 매우 위험한 쿼리 test
이므로 테이블의 모든 행 에서 열의 모든 항목을 지우고 number
(값에 관계없이)
WHERE
절 을 사용 하여 쿼리를 특정 행 집합으로 만 제한 하는 것이 더 일반적 입니다.
UPDATE `products` SET `in_stock` = true WHERE `supplier_id` = 10
update command
없으면 ...에 익숙하지 않은 경우이 명령은 테이블의 모든 레코드를 처리합니다. update
이 시도:
update `list`
set `test` = `number`
list
DB 이름은?
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;
당신은 또한 절차와 함께 할 수 있습니다 그래서 나는 이것에 대한 절차를 가지고
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 ;