2012-10-05 18 views
15

Jak zaktualizować pole, aby dodać wartość do istniejącej wartości?
Na przykład mamJak zaktualizować pole, aby dodać wartość do istniejącej wartości?

Nazwa tabeli: table

id credit 
1  4 
2  5 
3  3 

Czy istnieje sposób, aby po prostu dodać wartość kredytu?
jak

UPDATE table SET credit = '+7' WHERE id='1' 

Chcę dodać 7 do 4, tak, że kredyt = 11 gdzie id = '1'
Jak to zrobić?

+3

jaka jest różnica między przyjętym odpowiedź niż moje? –

Odpowiedz

37
UPDATE table SET credit = credit + 7 WHERE id = 1 
+0

hehe ... nigdy o tym nie myślałem. : D – gumuruh

15

To tylko prosty UPDATE. Spróbuj wykonać następujące czynności.

UPDATE tableName 
SET Credit = Credit + 7 
WHERE ID = 1 

nuta że ID = 1 i ID = '1' jest taka sama jak serwer automatycznie analizuje go.

+0

Czy nie jest dobrym pomysłem umieszczenie '1' w ID = 1 w pojedynczym cudzysłowie, np.' ID = '1'', aby zapytanie nie spowodowało błędu, jeśli wartość identyfikatora nie została zdefiniowana? – WatsMyName

+1

serwer automatycznie analizuje tę wartość: D –

10

Wystarczy użyć credit = credit + 7 zamiast credit = '+7' w UPDATE rachunku

UPDATE tablename SET credit = credit + 7 WHERE id = 1 

See this SQLFiddle

7

Spróbuj kod

UPDATE table SET credit = credit + 7 WHERE id='1' 
3

Spróbuj tego ...

UPDATE table SET credit = credit + 7 WHERE id = 1 
1

Dobrze "+" jest operatorem, więc musisz podać wymagany parametr. operator „+” jest operatorem binarnym więc musimy zapewnić dwa parametry do niego ze składnią

value1+value2 

choć może to potrwać parametry wielu typów danych pisząc „+7” wysyłasz tylko wartość ciągu „+7” zastępując poprzednia wartość

więc u lepiej wykorzystywać

UPDATE table SET credit = '+7' WHERE id='1' 

nie mylić „+” operatorowi innych operatorów inkrementacji

1

Chciałem dodać do tego przykład "NA DUPLICATE KEY UPDATE" (w oparciu o odpowiedź @ hims056). Znalazłem tę odpowiedź, ale potrzebowałem "ON DUP ...", więc pomyślałem, że równie dobrze mogę to opublikować.

INSERT INTO table1 
(`id`, `credit`) 
VALUES (1, 4) 
ON DUPLICATE KEY UPDATE 
`credit` = `credit` + 7; 

See the SQL Fiddle here

+1

Dzięki za wpis. Uratowałeś mój Dzień! – Razvi

Powiązane problemy