Odpowiedzi:
Krótka odpowiedź na omawiany kod to:
UPDATE `table` SET test=number
Tutaj table
jest nazwa tabeli otoczona poważnym akcentem (aka back-tick), ponieważ jest to konwencja MySQL na unikanie słów kluczowych (iw TABLE
tym przypadku jest to słowo kluczowe).
UWAŻAJ, że jest to dość niebezpieczne zapytanie, które wyczyści wszystko w kolumnie test
w każdym wierszu tabeli, zastępując je number
(niezależnie od wartości)
Częściej używa się WHERE
klauzuli, aby ograniczyć zapytanie tylko do określonego zestawu wierszy:
UPDATE `products` SET `in_stock` = true WHERE `supplier_id` = 10
update command
... Bez klauzuli WHERE to polecenie spowoduje update
WSZYSTKIE rekordy w tabeli.
UPDATE `table_name` SET `test` = `number`
Możesz również wprowadzić jakiekolwiek zmiany matematyczne w procesie lub użyć funkcji MySQL, aby zmodyfikować wartości.
Spróbuj tego:
update `list`
set `test` = `number`
list
jest nazwa db?
UWAGA : kolejność kolumn aktualizacji jest krytyczna
DOBRE : To, czego chcę, zapisuje istniejącą wartość statusu w PrevStatus
UPDATE Collections SET PrevStatus=Status, Status=44 WHERE ID=1487496;
BAD : Status i PrevStatus kończą się na 44
UPDATE Collections SET Status=44, PrevStatus=Status WHERE ID=1487496;
spróbuj wykonać następujące czynności:
UPDATE `list` SET `test` = `number`
tworzy kopię wszystkich wartości z „number” i wkleja ją do „test”
Następujące pracowały dla mnie ...
w przypadku tabeli powiedzmy „test_update_cmd”, kolumna wartości źródłowej col2, kolumna wartości docelowej col1 i kolumna warunku col3: -
UPDATE test_update_cmd SET col1=col2 WHERE col3='value';
Powodzenia!
możesz to zrobić również za pomocą procedury, więc mam do tego procedurę
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 ;