hotti: Wozu eigentlich SELECT 1 FROM ....

Moin,

s. Thema. Ich bekomme eine leere Menge mit

SELECT 1 FROM log WHERE hugo = '123';

DB ist MySQL 5.1.40-community

Schöner wär's doch, eine '0' zu kriegen, wenn es den 'hugo' nicht gibt. Oder gäbe es da noch eine andere Abfrage, die exakt 1 ODER 0 liefert?

Hotti

--
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  1. Hi,

    s. Thema. Ich bekomme eine leere Menge mit
    SELECT 1 FROM log WHERE hugo = '123';

    Oder gäbe es da noch eine andere Abfrage, die exakt 1 ODER 0 liefert?

    Mit EXISTS:
    SELECT EXISTS (SELECT * FROM log WHERE hugo = '123');

    Bis die Tage,
    Matti

    1. hi Matti,

      Oder gäbe es da noch eine andere Abfrage, die exakt 1 ODER 0 liefert?
      Mit EXISTS:
      SELECT EXISTS (SELECT * FROM log WHERE hugo = '123');

      Wow, geht, danke Dir!!!

      Gibts evntl. einen Grund, das "SELECT 1 ... " nicht ganz in die Tonne zu treten (andere Verwendung)?

      Viele Grüße!

      1. Tach!

        Gibts evntl. einen Grund, das "SELECT 1 ... " nicht ganz in die Tonne zu treten (andere Verwendung)?

        Sicher, aber nicht für das Ermitteln einer Anzahl (selbst wenn die genaue Zahl nicht weiter interessiert). Dafür gibt es COUNT(*).

        dedlfix.

        1. hi,

          .. Dafür gibt es COUNT(*).

          Falls Du COUNT(*) verwendest, google mal nach 'Select tables optimized away', das dürfte Dich evntl. interessieren.

          Hotti

          1. Tach!

            .. Dafür gibt es COUNT(*).
            Falls Du COUNT(*) verwendest, google mal nach 'Select tables optimized away', das dürfte Dich evntl. interessieren.

            Hat nur nichts mit deiner Frage zu tun, weil du eine WHERE-Klausel verwendest, bei der MySQL nicht einfach so die Anzahl aus den Tabellen-Metadaten auslesen kann.

            dedlfix.