MySQL: Update nur wenn vorher bestimmter Wert in Feld
Frage von GoldStock | 21.03.2012 um 22:24
Ich habe ein kleines Problem mit einer Datenbank Abfrage in MySQL. Und zwar möchte ich mit UPDATE ein Wert in einem Feld ändern. Eine Änderung soll aber nur durchgeführt werden, wenn in dem Feld vorher ein bestimmter Wert steht. Ansonsten soll der alte Wert beibehalten werden.
Beispiel: Ich möchte das Feld 'foo' in der Tabelle 'nutzer' beim Nutzer mit id=10 auf 3 setzen, wenn das Feld vorher auf 2 stand. Ansonsten soll in dem Feld der vorherige Wert stehen bleiben, da die Werte nicht kleiner sondern nur größer werden sollen.
Ähnliche Themen
MySQL: Aktuelles Datum oder Zeit in Spalte schreiben
Tutorial | 0 Kommentare
PHP: Formular-Eingaben als Array an PHP Skript schicken
Tipp | 0 Kommentare
MySQL: Zeilenumbrüche in MySQL
Tipp | 0 Kommentare
MySQL: Suchen und Ersetzen direkt in MySQL
Tipp | 1 Kommentar
Mehrere Texte gleichzeitig ersetzen
Tutorial | 0 Kommentare
MySQL: Wie viele Datensätze wurden gefunden oder sind von meiner Abfrage betroffen?
Info | 0 Kommentare
E-Mails: Was bedeuten TO, CC und BCC und was ist der Unterschied?
Info | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Du kannst in MySQL IF-Anweisungen verwenden, um so einen Fall zu managen. Um dein Beispiel aufzugreifen:
Hinter unserem 'foo=' steht eine IF-Anweisung. Wenn 'foo=2' gilt, dann wird die erste Alternative nach dem ersten Komma verwendet (die 3 wird in das Feld geschrieben). Wenn 'foo=2' nicht gilt, wird die zweite Alternative hinter dem zweiten Komma genommen, also foo und damit der alte Wert des Feldes. Das ist wichtig extra zu erwähnen, sonst steht hinterher gar kein Wert in dem Feld.
Du hast auch geschrieben "damit die Werte nicht kleiner werden". Vielleicht ist daher auch diese Anweisung für dich interessant:
Damit wird foo auf 3 gesetzt, sobald foo vorher kleiner als 3 war. Also wird foo auch auf 3 gesetzt, wenn vorher 0 oder 1 in dem Feld standen und nicht nur, wenn dort vorher eine 2 stand.
22.03.2012 um 21:10