Gå til innhold

Slette kolonne dersom den ikke inneholder data


Anbefalte innlegg

God ettermiddag!

 

Finnes det en enkel måte å sjekke om en kolonne i MySQL inneholder data i det hele tatt?

 

Har forsåvidt en løsning, men den virker tåpelig, og går som følger:

 

1) Slår opp alle kolonnene vha EXPLAIN <table name>

2) Looper gjennom alle radene i en kolonne og øker en teller for hver gang den treffer data, om den treffer data kjøres BREAK (så slipper den å loope mer når den støter på data i den kolonnen).

3) Dersom telleren er 0 på slutten kjøres det ALTER TABLE <table name> DROP <column>

4) Repeter for ALLE kolonner

Lenke til kommentar
Videoannonse
Annonse

Dersom det ikke er snakk om automasjon av prosessen eller et svææært høyt antall kolonner, så er det ikke verre enn å kjøre en litt begrenset SELECT sortert på kolonnene in question, både ascending og descending. Dersom det finnes data, så vil du finne det på toppen av en av to sorteringer.

Lenke til kommentar

Har en 'tag'-tabell som ser ut som følger:

 

+---------+---------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+---------+---------+------+-----+---------+-------+

| post_id | int(11) | NO | PRI | NULL | |

| testing | int(11) | YES | | NULL | |

| general | int(11) | YES | | NULL | |

| random | int(11) | YES | | NULL | |

| text | int(11) | YES | | NULL | |

| test1 | int(11) | YES | | NULL | |

+---------+---------+------+-----+---------+-------+

 

Om noe skal tagges lagres det med en post_id og setter feltet til '1' i den kolonnen som det er tagget i. Finnes kolonnen ikke opprettes den.

 

Problemet mitt oppstår når jeg skal slette en pos; for å unngå å ha masse tomme kategorier etterhvert som tiden går vil jeg har et script som sjekker for tomme kategorier hver gang en post slettes.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...