Antwort an „Rolf B“ verfassen

Hallo der henry,

Spalten müsstest du meines (eventüll veralteten) Wissens mit dem exakten Namen benennen.

Dieses Wissen ist aktüll. DROP LIKE gibt's nicht.

Wenn Du Spalten entfernen willst, die Du zu Testzwecken angelegt hast, dann sollte das keine Aktion sein, die häufig geschieht. Meine Empfehlung: Mach es manüll.

Wenn Du unbedingt was automagisieren willst, musst Du den Datenbankkatalog abfragen:

SELECT column_name FROM information_schema.columns
WHERE table_schema = '?' 
  and table_name = 'archivvalue'
  AND COLUMN_NAME LIKE 'T5%';

Normale Hochkommas, keine Backticks! Für das ? setzt Du den Namen des DB-Schemas ein, in dem sich deine Tabelle befindet.

Diese Query kannst Du bspw. von PHP aus laufen lassen und daraus ein ALTER TABLE Statement generieren. Für jede gefundene Spalte fügst Du ein DROP COLUMN xyz hinzu.

FALLS Du unbedingt ständig im laufenden Betrieb Spalten ergänzen oder entfernen willst, und zwar performant, dann war die Antwort darauf früher einmal: Verwende ein Entity-Attribute-Value Schema. Damit kann man dann zwar kein vernünftiges SQL mehr machen, aber man ist sehr flexibel, was dynamische Spalten angeht.

Die moderne Lösung dafür ist das Instant Add Column-Feature. Damit ergänzt und entfernst Du Spalten in O(1). Aus meiner Sicht ist das nicht die richtige Verwendung einer DB, aber das mögen andere anders sehen, sonst hätte MySQL/MariaDB das nicht drin.

Rolf

--
sumpsi - posui - obstruxi
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen