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) AStrue_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