Frage

Ich versuche, dies in MySQL zu tun:

UPDATE Tabelle SET-Wert = Wert - 1 WHERE bla bla

Wenn der Wert 0 ist, und dies wird ausgeführt Wert auf 4294967295. Das ist, weil es sich um eine ganze Zahl ohne Vorzeichen ist, so dass es rund um wieder auf den Maximalwert wird Looping.

Wie würde ich mich darum, sie stattdessen auf Null bleiben? Kann ich diese rein in der SQL tun?

War es hilfreich?

Lösung

`AND value > 0`

Andere Tipps

SET value = IF(value=0,0,value-1)

Verwenden Sie die where-Klausel sagen Wert> 0

Sonntagabend SQL verletzt mich immer zu. : -)

hängen Sie einfach an die SQL-Zeichenfolge AND value > 0

Sie können eine zweite Abfrage oder if-Anweisung ausführen, zu prüfen, ob sie auf das Maximum gesetzt ist, und setzen Sie ihn auf 0 zurück. Aber das ist eine Art von dumm ...

Bitte schreibe eine kurze Funktion, die den Eintrag überprüft, ob es bereits 0 ist ausführen keine Update-Abfrage.

(if value >= 0, do not perform xy)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top