NeoVanGoth: Boolean in PostgreSQL

Servus,

der Boolean-Typ von PostgreSQL akzeptiert zwar als Eingabe alles mögliche ("t", "f", "0", "1", "true", usw.), gibt allerdings immer "t" oder "f" aus. Das ist leider nur etwas fummelig und nervig mit PHP zu bearbeiten, ich hätte da lieber das von MySQL früher (einfach durch das Fehlen eines echten Boolean-Typs begründete ;)) "0" oder "1" zurück.
Irgendwo hab ich mal gelesen, dass man den Rückgabewert von Boolean bei Postgres umstellen kann, allerdings finde ich per Google irgendwie nichts nützliches...

Weiß zufällig jemand Bescheid?

Bis jetzt muß ich noch das Result durchloopen und die Typen entsprechend konvertieren, das ist performancetechnisch aber nicht so lecker. :-/

Danke für die Hilfe!

  1. Hallo,

    Bis jetzt muß ich noch das Result durchloopen und die Typen entsprechend konvertieren, das ist performancetechnisch aber nicht so lecker. :-/

    Warum nicht: SELECT normalesfeld, ..., CASE WHEN booleanfeld THEN 1 ELSE 0 END as booleanfeld, normalesfeld, ... FROM ...?

    Viele Grüße,
    Christian

  2. Hallo

    der Boolean-Typ von PostgreSQL akzeptiert zwar als Eingabe alles mögliche ("t", "f", "0", "1", "true", usw.), gibt allerdings immer "t" oder "f" aus. Das ist leider nur etwas fummelig und nervig mit PHP zu bearbeiten, ich hätte da lieber das von MySQL früher (einfach durch das Fehlen eines echten Boolean-Typs begründete ;)) "0" oder "1" zurück.

    Verstehe ich Dich richtig, dass Du ein PHP-Problem hast. Deine Auswertung verlässt sich darauf, dass die Zahl 0, die Zeichenkette "0" in PHP true entspricht und das, was nicht true ist, eben false? Ja?

    Irgendwo hab ich mal gelesen, dass man den Rückgabewert von Boolean bei Postgres umstellen kann, allerdings finde ich per Google irgendwie nichts nützliches...

    Herrjeh! Ist es so schwer? Bevor man Google belästigt, empfiehlt sich in aller Regel ein Blick ins Handbuch.

    Wähle Deine Version aus, bei mir wäre dies 8.1 mit Kommentaren

    Im Inhaltsverzeichnis Data Types auswählen.

    Dort interessiert uns logischerweise der Boolean Type.

    Unterhalb des Beispieles gibt es einen informativen Tipp, der Dein Problem behandelt, hier in Kurzform:

    Verwende einen CASE-Ausdruck: CASE WHEN boolval THEN 'value if true' ELSE 'value if false' END

    Ist die Vorgehensweise nachvollziehbar? Hilft Dir das Ergebnis weiter?

    Freundliche Grüße

    Vinzenz