mabue88
Goto Top

MySQL - SELECT und IF in Funktion

Hallo,

ist es möglich eine SELECT-Abfrage als Bedingung in einer IF-Abfrage zu verwenden?

Das Problem löse ich aktuell so:

FUNCTION `TestFunktion`(my_value VARCHAR(16)) RETURNS tinyint(1)
BEGIN
	DECLARE my_count INT;

	SELECT COUNT(*) INTO my_count
	FROM test_tabelle
	WHERE value = my_value;

	IF my_count > 0 THEN
		RETURN true;
	ELSE
		RETURN false;
	END IF;
END

Aber es gibt doch bestimmt eine Möglichkeit, bei der nicht zuerst eine Variable deklariert, die Abfrage durchgeführt und dann erst die Entscheidung mit der IF-Abfrage kommt...

Wie würdet ihr so eine Abfrage in der Funktion gestalten?

Danke
mabue

Content-Key: 247914

Url: https://administrator.de/contentid/247914

Printed on: April 27, 2024 at 03:04 o'clock

Member: emeriks
Solution emeriks Aug 31, 2014 updated at 11:57:56 (UTC)
Goto Top
Hi,
das müsste mit CASE gehen. Etwa so:

SELECT   Test =
      CASE COUNT(*)
         WHEN 0 THEN FALSE
         ELSE TRUE
      END,
   Name
FROM test_tabelle
WHERE value = my_value

Das stimmt do noch nicht ganz, aber irgendwie in diese Richtung geht das.

E.
Member: mabue88
mabue88 Aug 31, 2014 at 11:59:15 (UTC)
Goto Top
Hallo emeriks,

das war ein sehr guter Tipp! So klappt die Abfrage:

	SELECT 
		CASE COUNT(*)
			WHEN 0 THEN FALSE
			ELSE TRUE
		END
	FROM test_tabelle
	where value = my_value;