hotti: Nicht den Wert sondern nur 1||0

Moin,

MySQL 5.1.40

In der Abfrage brauche ich alle Felder, bis auf eines der Felder(mediumblob): Hierzu soll die Abfrage im Ergebnis nur 1||0 liefern, je nachdem, ob da was drinsteht oder nicht (NULL).

Wie könnte denn eine solche Abfrage aussehen?

Hotti

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

    In der Abfrage brauche ich alle Felder, bis auf eines der Felder(mediumblob):

    Es gibt nur alles (*) oder Einzelaufzählung, keine Ausschlusskriterien.

    Hierzu soll die Abfrage im Ergebnis nur 1||0 liefern, je nachdem, ob da was drinsteht oder nicht (NULL).

    Dazu gibt es Control-Flow-Funktionen und auch der Operator, der auf NULL prüft, kann verwendet werden.

    (Der Operator ||, hier als Bestandteil natürlicher Sprache verwendet, passt nicht zur Aufgabenstellung, weil das Ergebnis ein exklusives Oder ist.)

    dedlfix.

  2. In der Abfrage brauche ich alle Felder, bis auf eines der Felder(mediumblob): Hierzu soll die Abfrage im Ergebnis nur 1||0 liefern, je nachdem, ob da was drinsteht oder nicht (NULL).

    Wie könnte denn eine solche Abfrage aussehen

    SELECT IF(text,1,0) AS true_falseFROMtabelle;

    fred

    1. hi Fred && Dedlfix,

      SELECT IF(text,1,0) AS true_falseFROMtabelle;

      Genau das isses, danke Euch!!!

      Hotti

    2. besser: SELECT IF(text!= '', 1, 0) AStrue_falseFROMtabelle;

      fred

      1. Hi Fred,

        Mönsch, ich habs doch lämgst ;)

        besser: SELECT IF(text!= '', 1, 0) AStrue_falseFROMtabelle;

        Naja. In meinem Fall muss ich auf NULL prüfen ;)

        Viele Grüße,
        Hotti

    3. Hi,

      In der Abfrage brauche ich alle Felder, bis auf eines der Felder(mediumblob): Hierzu soll die Abfrage im Ergebnis nur 1||0 liefern, je nachdem, ob da was drinsteht oder nicht (NULL).
      SELECT IF(text,1,0) AS true_falseFROMtabelle;

      Halte ich für unschön, da auf einmal der Leerstring als "false" evaluiert wird.
      Beispiele:
      mysql> SELECT IF ('', 1, 0);
      +---------------+
      | IF ('', 1, 0) |
      +---------------+
      |             0 |
      +---------------+
      1 row in set (0.00 sec)

      mysql> SELECT IF ('0', 1, 0);
      +----------------+
      | IF ('0', 1, 0) |
      +----------------+
      |              0 |
      +----------------+
      1 row in set (0.00 sec)

      mysql> SELECT IF(NULL, 1, 0);
      +----------------+
      | IF(NULL, 1, 0) |
      +----------------+
      |              0 |
      +----------------+
      1 row in set (0.00 sec)

      mysql>

      Ich nehme nicht an, dass die ersten beiden Beispiele so gewollt sind.

      Wie dedlfix bereits sagte: der "IS NULL"-Operator ist gesucht.
      SELECT textIS NULL AStrue_falseFROMtabelle;

      (wers mag, darf natürlich gerne den ebenfalls erwähnten Control-Flow-Operator ergänzen:
      SELECT IF(textIS NULL, 1, 0) AStrue_falseFROMtabelle;.
      Ist aber hier unnötig).

      Bis die Tage,
      Matti

      1. hi Matti,

        SELECT textIS NULL AStrue_falseFROMtabelle;

        Die 'Kurzform' ist interessant, weil ich das Feld direkt mit IS NULL abfragen kann, da steht auch nichts anderes drin als NULL oder eine kleine Binary ;)

        Hab viel geschafft heut' nachmittag, Grüße an Alle!!!!

        Horst

        PS: Heute im Ersten kommt eine Sendung über den Thüringer Wald, gucken!