Nur die Spalte "Field" aus der Struktur auslesen

sirina

Mitglied
Hallo Forum,

ich habe da mal eine Frage zur Describe-Syntax in MySQL:

Ich möchte mir gerne nur die Spalte "Field" aus der Strukur-Übersicht ausgeben lassen.
Mit
Code:
Describe web;
funkioniert zwar die Ausgabe (die Strukur wird mir angezeigt) aber eben alle Spalten (also auch "Type", "Null", "Key"; "Default", "Extra"). Jetzt brauch ich aber nur das Feld "Field". Die Syntax
Code:
Describe web Field
funktioniert leider nicht.

Geht das überhaupt so wie ich mir das vorstelle? Ich wäre euch sehr sehr dankbar!

Vielen lieben Dank bereits im Voraus!
 
Wie in der Doku ersichtlich, ist das nicht vorgesehen.

Ich habe eben auch mal versucht mit temporären Tabellen oder Subquerys die Informationsflut einzudämmen. Das erzeugt aber auch nur Fehler, da die dazu nötige Syntax nur SELECT-Statements akzeptiert und DESCRIBE nun mal kein SELECT ist.

Es sollte in Deiner Anwendungssprache jedoch relativ unproblematisch sein, nur die eine Spalte (die mit den Spalten) darzustellen.

Weitere Möglichkeiten, Informationen über Felder zu bekommen, fallen mir im Moment nicht ein, was nicht heisst, dass es sie nicht gibt.

Gruß hpvw
 
Hi hpvw,

vielen Dank für deinen schnellen Post.
Ich hab die Ausgabe für eine Oberfläche gebraucht. Ich arbeite mit PHP und konnte somit das Problem umgehen :-) . Ich bin zur "Show Columns from tabellennamen" übergegangen und da mir die show-Syntax ein Array zurückliefert bin ich nun so vorgegangen, mir nur die erste Stelle im Array - und somit das Field - auszugeben. Das ist recht einfach und schnell gelöst ;)
Vielleicht kommt so ne Abfrage, wie ich sie gebraucht hätte ja mal in irgend einer MySQL-Version :) .


Für alle, die vor einem ähnlichen Problem stehen:
1. MySQL-Query basteln
Code:
$data =& $db->getAll('Show columns from  ' . $tabelle);
2. Eine Schleife basteln, die das ergebnis ausliest:
Code:
foreach ($data as $databases => $value){	
	if(is_array($value)){
			echo $value['Field'] . "<br>";
	}
}

Die Syntax mag ein wenig seltsam erscheinen. Das liegt daran, dass ich mit PEAR (PHP Extension and Application Repository) arbeite. Der Code aber auf das "normale" PHP ganz leicht übertragbar.

So, ich bastel dann mal weiter!

Vielen lieben Dank nochmal!
 
sirina hat gesagt.:
Ich bin zur "Show Columns from tabellennamen" übergegangen und da mir die show-Syntax ein Array zurückliefert
:confused: Kannst Du mir erläutern, wie Du das meinst?
Bei mir liefern die Queries DESCRIBE tabellenname und SHOW COLUMNS FROM tabellenname genau das gleiche Resultset.
Oder hat das mit der internen Verabeitung in dem PEAR-Paket zu tun?

Gruß hpvw
 
Show Columns und Describe ist das selbe. Kannst du nehmen, wie du willst. Es ändert nichts am Ergebnis. Describe ist halt eine "Abkürzung" von "Show Columns". Nur falls es mal der Fall sein sollte, dass jemand an meinem Code arbeitet und nicht alle Syntax-Ausdrücke kennt, kann er sich unter "Show Columns" evtl. eher etwas vorstellen, als "Describe". Der Code ist zwar kommentiert - aber bei "show columns" weiß man gleich, was gemeint ist. Zumindest seh ich das so.
Mit Pear hat das nix zu tun. Query ist Query, egal ob in PHP aufgebaut oder in Java oder in sonst was ;)
 
Zurück