# Rechnen mit SQL?



## uwee (12. Januar 2005)

Hallo

ich habe mir in meiner MySQL-Db eine Tabelle erstellt, in der ich rechnen will.
Die Tabelle besteht aus nur 2 Feldern und momentan 5 Einträgen.
Im ersten Feld steht die Bezeichnung, im zweiten Feld eine Zahl (7000).

Nun möchte ich gerne zu einem bestimmten Feld die Zahl 50 addiert haben.
Ich habe das schon mit Update versucht, aber angeblich ist ein fehler in der Syntax... also frage ich erstmal ganz pauschal:
Kann ich mit einer SQL-Anweisung rechnen

wenn ja, wie stelle ich das an?
Die Felder heißen Bezeichnung und Menge.
das Feld in dem gerechnet werden soll hat Bezeichnung=Gold / Menge=7000
und ich möchte nach der Rechnung Menge=7050 haben.

Vielen dank

UweE


----------



## redlama (12. Januar 2005)

Doch, das geht mit Update!
Schau Dir mal den Link an, da sind auch Beispiele, wie man per Update einen Wert verändern kann (z. B. durch Addition).
Könnte es zu dem Syntax Fehler kommen, weil Du einen falschen Datentyp definiert hast? Für Zahlen mit denen Du rechnest, sollte die Spalte vom Typ int sein.

redlama


----------



## uwee (12. Januar 2005)

die spalte hat den Typ BIGINT, da die Zahl auch mal gut über die Milliarde hinauswachsen kann

danke für den Link - das wird mir helfen das Problem zu lösen. Muss ich beim suchen Übersehen haben


----------



## uwee (12. Januar 2005)

hmm, das müsste funktionieren, aber ich muss noch ne Bedingung einbauen, weil ich ja mehrere Werte hab.


```
update ressourcen set ressmenge=ressmenge+50 where ressname=Gold;
```

Fehler:
#1054 - Unknown column 'Gold' in 'where clause' 


Aber die Zeile gibt es wirklich


----------



## redlama (12. Januar 2005)

Ja, aber ist Gold denn auch ein Spaltenname?
Ich vermute eher nicht, sondern der Werte von ressname, richtig?
Dann sollte es so heißen:
	
	
	



```
update ressourcen set ressmenge=ressmenge+50 where ressname='Gold';
```

redlama


----------



## uwee (12. Januar 2005)

ich dreh am Rad...
Da lass ich die Dinger einmal weg und schon funktionierts nicht mehr

DANKE für die schnelle Hilfe


----------



## redlama (12. Januar 2005)

Da gibt es eine ganz einfache Regel:
Für von MySQL reservierte Wörter, nutzt man die ` bei Tabellen- und Spaltennamen.
Ansonsten können die Tabellen- und Spaltennamen ohne ` angegeben werden.
Werte, die in der Tabelle stehen, müssen mit ' gekennzeichnet sein, da sie sonst als Spaltennamen angesehen werden (das war ja auch das Problem eben bei Dir).
Also einfach die Werte mit ' und ansonsten ` bzw. nichts.

redlama


----------

