2010-12-20 10 views
1

ist es in Mysql möglich, einen Wert aus einer Tabelle auszuwählen, indem Sie die Spaltennummer anstelle des Spaltennamens angeben?mysql - Auswählen von Werten aus einer Tabelle mit der Spaltennummer

+2

nicht möglich, was ist Ihr zugrunde liegender Zweck? – ajreal

+0

Ich habe hier einen Beitrag gefunden, der nützlich sein kann: http://forums.mysql.com/read.php?10,286477,286489#msg-286489 Ich bin mir nicht sicher, ob Sie das suchen oder nicht. – RageD

Antwort

1

Ich glaube nicht, dass es "direkt" möglich ist, aber mit einer Abfrage verknüpft mit dem Feld ORDINAL_POSITION der COLUMNS-Tabelle aus dem information_schema sollte die Arbeit tun!

Edit: SPALTEN Tabelle enthält alle Felder aller Tabellen (und ihre Positionen)

+0

nicht nur gesagt, ist möglich, zeigen Beispiele zu gewinnen Upvote .. – ajreal

+1

Sie benötigen eine PL-Sprache oder dynamische sql (nicht in MySQL), die SQL-Strings aus Abfragen erstellen und ausführen können. –

4

Nein, Sie können nicht die Ordnungs Wert einer Spalte in der SELECT-Klausel verwenden.

Die Spaltenreihenfolge ist für eine Datenbank nicht relevant. Der Ordinalwert basiert auf der Liste der Spalten in der SELECT-Klausel. Der Ordinalwert wird unterstützt nach die SELECT-Klausel - IE: in GROUP BY und ORDER BY. Allerdings ist die Verwendung von Ordinalzahlen kein empfohlener Ansatz, da Ordinalzahlen brüchig sind. Wenn jemand die Spaltenreihenfolge in der SELECT-Klausel ändert, kann die Abfrage negativ beeinflusst werden.

+0

aber in regelmäßigen SQL können Sie SELECT 1, 2, 3 FROM Tabelle – J3STER

0

Ich denke, dass Sie eine einzelne Abfrage mit Variablen rekursiv ausführen müssen. wie for for loop das zu tun.

Verwandte Themen