2012-01-25 18 views

Odpowiedz

249
UPDATE `table` SET test=number 
+14

To jedna z tych rzadkich okazji, w których twórcy pomyśleli jak laicy. – Zaxter

+3

To pokazuje, jak słabe jest zrozumienie aktualizacji. –

+3

Uważaj, jeśli nie znasz "polecenia aktualizacji" ... Bez klauzuli WHERE ** to polecenie spowoduje aktualizację ** WSZYSTKICH ** rekordów w tabeli. – gmo

8

spróbuj tego:

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

nie jest 'list' jest nazwą bazy danych? –

+2

Może. Myślę, że to literówka. –

+0

lista jest

user2439124

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

Można również zrobić jakieś matematyczne zmian w procesie lub używać funkcji MySQL, aby zmodyfikować wartości.

-6

można zrobić to z wewnętrznego też tak mam procedurę tym

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

Wygląda na to, że zasada KISS jest zwyczajnie martwa ... – NemoStein

+0

Tutaj KISS oznacza "Keep it simple, stupid" – nitinr708

1

try następuje:

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

tworzy kopię wszystkich wartości od „numer” i wkleić go do " test”

1

Obserwowany pracował dla mnie ..

  1. Upewnij się, że nie używasz trybu bezpiecznego w aplikacji edytora zapytań. Jeśli tak, wyłącz to!
  2. Następnie uruchom następujące sql polecenia

na stole powiedzieć 'test_update_cmd', źródło wartości kolumna col2, kierować wartość kolumny col1 i kolumny stan Col3: -

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

Powodzenia!

1

UWAGA: Postanowienie aktualizacji kolumn jest krytyczny

DOBRY: Co chcę oszczędza istniejącą wartość statusu do PrevStatus

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

BAD: Stan & PrevStatus zarówno skończyć jako 44

UPDATE Collections SET Status=44, PrevStatus=Status WHERE ID=1487496; 
Powiązane problemy