# Mysql Update von feldern nur wenn wert...



## Zero2000 (7. Oktober 2005)

Hallo

Ich stehe aufm Schlauch wie man so schön sagt.
Ich würde gern wissen ob ich mit dem Update Befehl auch nur Felder einer Tabelle updaten kann die keinen Wert enthalten.

```
Beispiel:
Tabelle: test
Felder: test1 und test2

in test1 befindet sich ein Wert (z.B. eine 0)
in test2 befindet sich kein Wert

mysql_db_query("$database", "UPDATE test SET test1='$test1', test2='$test2' WHERE ? ");
```

Vielen Dank schonmal für eure Mühe.
Und falls es dann doch Mysqlbasics sein sollte, bin ich wahrscheinlich schon
blind vom suchen...

MfG Maik


----------



## ronaldo84 (7. Oktober 2005)

Hallo

Du kannst die Funktion isnull verwenden

SQL Bedingung:
Update..
set..
Where isnull(spaltenname) = TRUE;


----------



## Zero2000 (10. Oktober 2005)

Hallo

Ich bekomm' dann leider diesen Fehler:
*Unknown column 'TRUE' in 'where clause'*
In meiner Tabelle steht kein Wert drin nicht mal das sonst übliche NULL.
Das ist wahrscheinlich der Grund warum ISNULL nicht funktioniert.
IS NULL geht auch nicht. Ich habe auch verscheidene Schreibweisen durchprobiert.

Hier mal mein momentaner Code:

```
mysql_db_query("$database", "UPDATE tabelle SET  wert='$wert' 
WHERE Id = $oriid AND IS NULL([wert])")
or die("FEHLER:<br><br>".mysql_error());
```
da bekomme ich diesen Fehler:

```
You have an error in your SQL syntax.
Check the manual that corresponds to your MySQL
server version for the right syntax to use near
'IS NULL([wert])' at line 1
```

MfG Maik


----------



## hpvw (10. Oktober 2005)

Die Syntax lautet 
	
	
	



```
... WHERE `Spaltenname` IS NULL
```
Gruß hpvw 

EDIT: Die Funktion gibt es natürlich auch, ein weiterer Vergleich mit true ist dann allerdings nicht nötig:
	
	
	



```
... WHERE ISNULL(`Spaltenname`)
```

http://dev.mysql.com/doc/mysql/de/comparison-operators.html


----------



## Zero2000 (10. Oktober 2005)

Hallo

Ich bekomme es nicht zum laufen. Ich kann ja mal versuchen zu erklären was ich vor habe.
Ich wollte für meine ebaygeschäfte eine Offlineansicht basteln.
Ich habe demnach diese grauen Bilder für unerledigte Sachen wie Zahlstatus und so weiter.
Per Checkbox trage ich in ein char(1) Feld einen Wert ein das ist ein kleines "o".
Standard ist nichts also ""
Ich habe nun mehrere Abfragen.
Wenn nichts in dem Feld steht dann zeige das graue Bild ansonsten das Blaue.
Ist in einem Feld ein Wert wird das blaue Bild angezeigt und die Checkbox ist aktiviert und disabled.

Wenn ich jetzt einen weiteren Status setzen will wird dieser eingetragen und der andere wieder ausgetragen. Deswegen wollte ich den Updatebefehl so gestalten, dass er nur Felder updatet in denen sich KEIN wert befindet. Alle anderen sollte er in ruhe lassen.

Ist das irgendwie zu machen

MfG Maik


----------



## hpvw (10. Oktober 2005)

Unter "kein Wert" verstehst Du also einen Char mit 0 Zeichen?
Dann bieten sich verschiedene Möglichkeiten:
	
	
	



```
... WHERE `Feldname`=''

... WHERE `Feldname` LIKE ''

... WHERE LENGTH(`Feldname`)=0
```
Gruß hpvw


----------

