2016-04-05 5 views
1

Ich möchte in der Lage sein, eine Auswahl für alle Spalten, zeigt eine 0 (für einige von ihnen) wenn Null, ohne jeden Namen der Spalten in schreiben zu müssen die Aussage.wählen Sie alle Spalten, gleichzeitig eine ifnull auf einem

Alles, was ich denken konnte, ist so etwas wie dieses:

SELECT *, IFNULL(`nullable_col1`, 0) FROM `my_table`; 

Was ist der richtige Weg, dies zu tun?

+5

Komm Lazybones ;-) – Strawberry

+0

Faulheit ist Glückseligkeit! :) – Zaxter

+0

Ja, ist es. Beachten Sie jedoch, dass Probleme dieser Art häufig Symptome für schlechtes Design sind. – Strawberry

Antwort

1

Nein gibt es keine Möglichkeit. Sie müssen die IFNULL Funktion für jede Spalte verwenden, für die Sie den Wert haben möchten.

Eine Sache, die Sie tun können, ist, dass, können Sie einfach den Wert für alle Spalten auswählen, die nicht NULL sind (aber ich bin nicht sicher, ob das ist, was Sie wollen)

SELECT * FROM my_table WHERE (nullable_col1 AND nullable_col2 AND nullable_col2) IS NOT NULL 

So Dies wird nur Spalten auswählen, die nicht NULL sind.

Verwandte Themen