MySQL Minimalwert über mehrere Spalten, jedoch nicht 0
Minimalwert auswerten, allerdings nicht 0 (also größer 0)
Hallo,
ich habe eine Tabelle mit mehreren Werten in mehreren Spalten wo ich den Mindestwert bestimmen muss.
Allerdings habe ich das Problem, dass dieser Wert nicht 0 sein darf.
Schema
ID, Wert01, Wert02, Wert03
1, 300, 0, 325 (min is 300)
2, 225, 275, 0 (min is 225)
3, 0, 500, 300 (min is 300)
Vom Prinzip her wäre das eigentlich so, allerdings bekomme ich da immer die 0 ausgewertet:
SELECT min(least(Wert01, Wert02, Wert03)) FROM table ...
Gibt es hierfür überhaupt eine SQL-Syntax oder muss ich dafür einen weiteren Workaround Scriptseitig bauen?
Gruß, Rumble
Hallo,
ich habe eine Tabelle mit mehreren Werten in mehreren Spalten wo ich den Mindestwert bestimmen muss.
Allerdings habe ich das Problem, dass dieser Wert nicht 0 sein darf.
Schema
ID, Wert01, Wert02, Wert03
1, 300, 0, 325 (min is 300)
2, 225, 275, 0 (min is 225)
3, 0, 500, 300 (min is 300)
Vom Prinzip her wäre das eigentlich so, allerdings bekomme ich da immer die 0 ausgewertet:
SELECT min(least(Wert01, Wert02, Wert03)) FROM table ...
Gibt es hierfür überhaupt eine SQL-Syntax oder muss ich dafür einen weiteren Workaround Scriptseitig bauen?
Gruß, Rumble
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 201481
Url: https://administrator.de/contentid/201481
Ausgedruckt am: 14.11.2024 um 19:11 Uhr
5 Kommentare
Neuester Kommentar
Moin moin,
also ich würde dir empfehlen noch mal dein Tabllenlayout zu überdenken und evtl. zu änderen, wenn das von deiner Seite aus machbar ist und das Schema nicht fix ist.
Wenn ich das richtig sehe hast du sowas wie mehrere Messreihen, die wiederum mehrere Messdaten haben. Da könnte man Folgendes machen:
Messreihe
ID, Name
1, Reihe 1
2, Reihe 2
...
n, Reihe XYZ
Messpunkte
ID, MessreiheID, Wert
1, 1, 300
2, 1, 0
3, 1, 325
4, 2, 225
5, 2, 275
6, 2, 0
...
m, n, 0
m+1, n, 500
m+2, n, 300
...
Dann kannst du die Tabllen JOINen (anhand der Messreihen ID) und mit einer WHERE Klausel deinen Wert finden.
Würde sagen das wäre eine saubere Lösung.
Gruß
ByteKiller
also ich würde dir empfehlen noch mal dein Tabllenlayout zu überdenken und evtl. zu änderen, wenn das von deiner Seite aus machbar ist und das Schema nicht fix ist.
Wenn ich das richtig sehe hast du sowas wie mehrere Messreihen, die wiederum mehrere Messdaten haben. Da könnte man Folgendes machen:
Messreihe
ID, Name
1, Reihe 1
2, Reihe 2
...
n, Reihe XYZ
Messpunkte
ID, MessreiheID, Wert
1, 1, 300
2, 1, 0
3, 1, 325
4, 2, 225
5, 2, 275
6, 2, 0
...
m, n, 0
m+1, n, 500
m+2, n, 300
...
Dann kannst du die Tabllen JOINen (anhand der Messreihen ID) und mit einer WHERE Klausel deinen Wert finden.
Würde sagen das wäre eine saubere Lösung.
Gruß
ByteKiller