2012-01-25 116 views

Trả lời

249
UPDATE `table` SET test=number 
+14

Đó là một trong những trường hợp hiếm hoi mà các nhà phát triển đã nghĩ như người dân. – Zaxter

+3

Nó chỉ cho thấy người nghèo hiểu biết về cập nhật như thế nào. –

+3

Cẩn thận nếu bạn không quen với lệnh 'cập nhật' ... Nếu không có mệnh đề ** WHERE **, lệnh này sẽ' cập nhật' ** tất cả các bản ghi ** trong bảng. – gmo

8

thử điều này:

update `list` 
set `test` = `number` 
+0

không phải là 'danh sách' là tên db? –

+2

có thể. Tôi nghĩ đó là lỗi đánh máy. –

+0

danh sách là

user2439124

23
UPDATE `table_name` SET `test` = `number` 

Bạn cũng có thể làm bất kỳ thay đổi toán học trong quá trình này hoặc sử dụng chức năng MySQL để thay đổi các giá trị.

-6

bạn có thể làm điều đó với Thủ tục cũng vì vậy tôi có một thủ tục cho

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 ; 
+11

Có vẻ như nguyên tắc KISS là đồng đều ... – NemoStein

+0

Ở đây KISS là viết tắt của "Giữ nó đơn giản, ngu ngốc" – nitinr708

1

thử này như sau:

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

nó tạo ra bản sao của tất cả các giá trị từ "số" và dán nó vào " kiểm tra "

1

Làm việc sau cho tôi ..

  1. Đảm bảo bạn không sử dụng Chế độ an toàn trong ứng dụng trình soạn thảo truy vấn của mình. Nếu bạn đang có, vô hiệu hóa nó!
  2. Sau đó chạy sau lệnh sql

cho một bảng nói, 'test_update_cmd', nguồn giá trị cột col2, nhắm mục tiêu col1 cột giá trị và cột trạng col3: -

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

Chúc may mắn!

1

BEWARE: Trình tự các cột cập nhật là rất quan trọng

TỐT: Những gì tôi muốn tiết kiệm Giá trị hiện có của Status để PrevStatus

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

BAD: Trạng thái & PrevStatus cả kết thúc như 44

UPDATE Collections SET Status=44, PrevStatus=Status WHERE ID=1487496; 
Các vấn đề liên quan