3 Stimmen

SQL isset und nicht Anzeige leer 'Zellen'

Ich verwende eine meiner MySQL-Datenbanktabellen als tatsächliche Tabelle, mit Tageszeiten als jede Spalte und einer Spalte namens Tag. Du hast es erraten, im Tag steht der Wochentag, und in den restlichen Zellen steht, was zu dieser Zeit passiert.

Was ich tun möchte, ist nur die Zellen anzuzeigen, die einen Wert enthalten. In meinem Fall werde ich immer alle Zeilen und 2 Spalten voll haben. Die 2 Spalten sind 'Tag' und '19:00', jedoch könnte ich in Zukunft Werte für '18:00' usw. hinzufügen.

Also, wie kann ich nur die Spalten und Zeilen SELECTEN, die Daten enthalten? Eine Art 'WO: Daten sind vorhanden'?

Danke!

BEARBEITEN: Bild Datenbank

2voto

Guffa Punkte 663241

Wenn Sie Zeit oder Tag als Spalten haben, bedeutet das, dass Sie Daten in Ihren Feldnamen haben. Daten gehören in die Tabelle, daher sollten Sie die Datenbank normalisieren:

tabelle Kalender
--------------
Tag
Tageszeit
Termin

Auf diese Weise erhalten Sie nicht viele leere Felder in der Tabelle, und Sie müssen das Datenbankdesign nicht ändern, um eine weitere Tageszeit hinzuzufügen.

Jetzt können Sie ganz einfach nur die vorhandenen Zeiten abrufen:

select Tag, Tageszeit, Termin from Kalender

1voto

Janick Bernet Punkte 19324

Von dem, was ich verstanden habe, suchen Sie etwas in dieser Art

WO Spalte1 NICHT NULL IST

Es wäre jedoch hilfreich, wenn Sie mehr über Ihr Schema ausführen könnten, insbesondere wenn Sie eine Beispieltabelle zeichnen könnten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X