Noble Skrevet 19. mars 2010 Del Skrevet 19. mars 2010 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
Jonas Skrevet 19. mars 2010 Del Skrevet 19. mars 2010 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
Noble Skrevet 19. mars 2010 Forfatter Del Skrevet 19. mars 2010 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
Psy Skrevet 19. mars 2010 Del Skrevet 19. mars 2010 SELECT count(kolonne) FROM tabell WHERE kolonne <> NULL Om resultatet = 0, slett kolonne. Om du har en annen verdi enn NULL til å angi om du ikke har data så bruker du bare denne isteden. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå