Alle bis auf eine Spalte aus einer MySQL-Tabelle abrufen
Frage:
In einem MySQL Wie können Sie in einer Datenbank alle Spalten außer einer bestimmten in einer bestimmten Datenbank abrufen? Tabelle?
Antwort:
Obwohl dies wie eine einfache Aufgabe erscheinen mag, bietet MySQL keine integrierte Methode zum Ausschließen bestimmter Spalten in einer SELECT-Anweisung. Mit einer Kombination aus dynamischem SQL und gespeicherten Prozeduren ist es jedoch möglich, diese Funktionalität zu erreichen.
Lösung:
Folgen Sie diesen Schritten, um alle Spalten außer einer in abzurufen eine MySQL-Tabelle:
DELIMITER // CREATE PROCEDURE get_all_columns_except( IN table_name VARCHAR(255), IN database_name VARCHAR(255), IN excluded_column VARCHAR(255) ) BEGIN -- Dynamically build the SELECT statement SET @sql = CONCAT('SELECT ', (SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), excluded_column, '') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = table_name AND TABLE_SCHEMA = database_name), ' FROM ', table_name); -- Prepare the statement for execution PREPARE stmt1 FROM @sql; -- Execute the statement EXECUTE stmt1; END // DELIMITER ;
Sobald die gespeicherte Prozedur erstellt wurde, können Sie sie aufrufen es mit dem folgenden Befehl:
CALL get_all_columns_except('table_name', 'database_name', 'excluded_column_name');
Ersetzen Sie „table_name“, „database_name“ und „excluded_column_name“ durch die tatsächlichen Werte.
Beispiel:
Um alle Spalten außer der Spalte „Nachname“ in der Tabelle „Mitarbeiter“ abzurufen Wenn Sie die Datenbank „company_db“ verwenden, rufen Sie die gespeicherte Prozedur wie folgt auf:
CALL get_all_columns_except('employees', 'company_db', 'last_name');
Mit diesem Ansatz können Sie alle Spalten in einer Tabelle auswählen und automatisch eine bestimmte Spalte weglassen, selbst wenn die Tabelle eine große Anzahl enthält Spalten.
Das obige ist der detaillierte Inhalt vonWie wähle ich in MySQL alle Spalten außer einer aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!