Decrement in mysql geht vorbei Null
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?
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)