MySQL IF bedingung mit 2 werten

Aha.
Kurzgefasst:
Die gewählte ID, sofern sie höher oder gleich der mengeX ist, sonst die erste ID die höher als mengeX ist und ansonsten die letzte id.

So, da ich SQL-Spielchen liebe, hab ich mal etwas entworfen. Anstelle der Variablen kann man die 2 Werte auch direkt ins SQL einfügen.
SQL:
# Die Variablen definieren
SET @idX = 1;
SET @mengeX = 22;

# Die Daten selektionieren
SELECT
	id,
	menge
FROM 
	menge,
	# Grösste menge bestimmen
	(SELECT max(menge) AS max_menge FROM menge) AS max_m
WHERE
	# Alle Daten seelktionieren die grösser als mengeX sind
	menge >= @mengeX
	# oder dem grössten menge-Wert entsprechen
	OR menge = max_menge
ORDER BY
	# Zuerst danach sortieren, ob der Wert der idX entspricht
	(id<>@idX),
	# dann nach der Menge
	menge,
	# und zuletzt nach der id um bei mehreren Datensätzen
	# mit der gleichen maximalen menge den mit der tiefste id auszuwählen
	id
LIMIT 1;
 
Zuletzt bearbeitet von einem Moderator:
Zurück