Nicht den Wert sondern nur 1||0
hotti
- datenbank
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
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.
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_falseFROM
tabelle;
fred
hi Fred && Dedlfix,
SELECT IF(
text,1,0) AS
true_falseFROM
tabelle;
Genau das isses, danke Euch!!!
Hotti
besser: SELECT IF(
text!= '', 1, 0) AS
true_falseFROM
tabelle;
fred
Hi Fred,
Mönsch, ich habs doch lämgst ;)
besser:
SELECT IF(
text!= '', 1, 0) AS
true_falseFROM
tabelle;
Naja. In meinem Fall muss ich auf NULL prüfen ;)
Viele Grüße,
Hotti
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_falseFROM
tabelle;
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 AS
true_falseFROM
tabelle;
(wers mag, darf natürlich gerne den ebenfalls erwähnten Control-Flow-Operator ergänzen:
SELECT IF(
textIS NULL, 1, 0) AS
true_falseFROM
tabelle;
.
Ist aber hier unnötig).
Bis die Tage,
Matti
hi Matti,
SELECT
textIS NULL AS
true_falseFROM
tabelle;
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!