sql >> Databasteknik >  >> RDS >> Mysql

SQL för att returnera en lista över fält som innehåller icke-NULL-data

Så ditt mål är att få listan med kolumnnamn så att alla har minst ett icke-NULL-värde i någon av raderna, eller hur? Om så är fallet, se nedan...

Du kan inte parametrisera namn på kolumner i en SQL-fråga, så du måste bygga din SQL-text dynamiskt på det klientspråk du väljer. Algoritmen skulle se ut så här:

  1. Du måste känna till listan med kolumnnamn i förväg. Det finns sätt att automatisera hämtning av den här listan i PostgreSQL , MySQL och de flesta andra databaser.
  2. Iterera genom den här listan och för varje column_name bygg dynamiskt SQL-texten som:SELECT column_name FROM YOUR_TABLE WHERE column_name IS NOT NULL LIMIT 1 (se MySQL LIMIT och PostgreSQL LIMIT ).
  3. Utför frågan ovan och hämta resultatet. Om det finns en rad i den, lägg till column_name till resultatlistan .
  4. Fortsätt att iterera medan det finns element i kolumnnamnslistan.

Den resulterande listan innehåller nu kolumner med minst ett icke-NULL-värde.



  1. if(!isset($_SESSION['användarnamn'])) som gör att användare omdirigeras från verify_login_form.php tillbaka till index.php

  2. Returnera parametrarna för en lagrad procedur eller användardefinierad funktion i SQL Server (T-SQL-exempel)

  3. Hur man skapar en databas med Liquibase

  4. Hur man flyttar sedan radera fält i MySQL