Ich möchte Spaltennamen auswählen, aber ich weiß nicht die Tabellenstruktur im Voraus und es kann sich ändern, so kann ich nicht nur die Select-Anweisung mit Spaltennamen hart Code. Ich möchte auch nicht jede Spalte auswählen. Gibt es einen einfachen Weg dies zu tun?Wie wählt man Spaltennamen dynamisch in mySQL
Meine Gedanken sind, es ist eine Art Kombination dieser beiden Abfragen, aber mein SQL ist nicht so gut.
SHOW COLUMNS FROM table_name;
SELECT * FROM table_name;
Ich versuchte mit einem Sub-Select, aber es hat nicht funktioniert. Nichts scheint zu passieren, ich habe nicht einen Fehler bekomme ich nur keine Ergebnisse
SELECT (SELECT column_name
FROM information_schema.columns
WHERE table_name ='table_name')
FROM table_name;
Vielleicht brauche ich eine Verknüpfung zu tun? .. Auf jeden Fall jede Hilfe wäre toll, dank
Es scheint seltsam, dass sich die Tabellenstruktur ständig ändert, das klingt wie ein Designfehler. Können Sie Ihre aktuelle Struktur posten oder mehr Kontext für Ihre Tabellen bereitstellen? – Taryn
Es ändert sich nicht ständig. Die endgültige Struktur der Tabellen ist jedoch noch nicht in Stein gemeißelt, und deshalb versuche ich, ein System zu schaffen, das schlau genug ist, sich an die zukünftigen Änderungen anzupassen. Ich kenne die Spaltennamen nicht im Voraus. Ich könnte dies in PHP mit 2 separaten Abfragen tun, aber ich könnte es auch auf der Ebene der Datenbank tun. Ich dachte, ich könnte die Spaltennamen bekommen, dann verwenden Sie diese Daten, um die Tabelle im Grunde eine dynamische Select-Anweisung zu erstellen. – TheSnooker
Sie können dies mit dynamischem SQL tun (es werden effektiv zwei Abfragen sein), aber wenn Sie nicht alle Spalten wollen, müssen Sie in Ihre Abfrage einlesen und die Spalten aus den Metadaten auswählen, welche Kriterien für das Einfügen einer Spalte gelten (und jede bestimmte Reihenfolge, die Sie wollen). Sie können die Ergebnisse einer Abfrage für die Metadaten jedoch nicht direkt in eine Auswahlliste für die Auswahlabfrage umwandeln. –