2016-04-24 3 views
0

Ich weiß, dass Sie DESCRIBE tablename; verwenden können, um die Beschreibung der Tabelle zu erhalten, die Feld, Typ, Null, Schlüssel, Standard und Extra enthält. Gibt es jedoch eine Möglichkeit, nur die Feldspalte und nicht den Rest zu erhalten (vorzugsweise in einem Format, mit dem man einfach arbeiten kann, wie zum Beispiel in Python)? Ich weiß, dass ich in Python etwas analysieren könnte, aber ich würde es am liebsten von MySQL in der saubersten Form bekommen.Wie bekomme ich nur die Felder aus einer Tabelle in MySQL?

Ich fand eine ähnliche Frage here, aber keiner von ihnen beantwortet meine Frage.

Für was es wert ist, bin ich Schnittstelle zu MySQL über PyMySQL in Python3 und ich benutze MySQL Server Version 5.1.73. Danke für Ihre Hilfe!

+0

In Python, Verwenden Sie die Verbindungs-/Cursor-Klassen (MySQLCursor) und fragen Sie nach dem Ausführen einer Abfrage nur die Cursorklasse nach den Spaltennamen ab. –

+1

Was ist falsch an INFORMATION_SCHEMA.COLUMNS? – Drew

Antwort

2

Per mein Kommentar oben, und Ihre eigenen Link, und das erste, was in den Sinn kommt, wie etwa

select column_name from INFORMATION_SCHEMA.COLUMNS 
where table_schema='stackoverflow' 
and table_name='questions' 

meine db Namen und Tabellennamen sind in der where-Klausel

+0

Danke für die Hilfe Drew! Am Ende bekam ich mit 'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '...';' Und was die Formatierung anbetrifft, ich bleibe bei der Liste der Wörterbücher, die es in Python gibt. – Logan

+0

@Logan Sie ** brauchen ** 'UND TABLE_SCHEMA = '...'' in Ihrer Abfrage, denn sonst, sobald eine Tabelle mit dem gleichen Namen in einem anderen Schema auf dem gleichen Server erstellt wird, wird Ihre Abfrage Ihnen geben falsche Ergebnisse. Wenn die Reihenfolge der Spaltennamen wichtig ist, sollten Sie ORDER BY ORDINAL_POSITION hinzufügen, damit die Reihenfolge der Ergebnisse deterministisch ist. –