Verkettung aller Spalten in MySQL: Alternative Ansätze
In MySQL ist die Verkettung aller Spalten mit dem Schlüsselwort * nicht möglich. Um eine verkettete Zeichenfolge von Werten über alle Spalten hinweg abzurufen, ist eine explizite Liste von Spaltennamen erforderlich.
Explizite Spaltenauflistung:
Der einfachste Ansatz besteht darin, einzelne Werte manuell zu verketten Spalten:
SELECT CONCAT(col1, col2, col3, ....) FROM yourtable
CONCAT_WS-Funktion:
Die CONCAT_WS-Funktion kann verwendet werden, um Spalten zu verketten und dabei Nullwerte zu überspringen:
SELECT CONCAT_WS(',', col1, col2, col3, ....) FROM yourtable
Dynamische Abfragegenerierung:
Um die manuelle Angabe von Spaltennamen zu vermeiden, kann eine dynamische Abfrage erstellt werden:
SELECT `column_name` FROM `information_schema`.`columns` WHERE `table_schema`=DATABASE() AND `table_name`='yourtable';
Diese Abfrage ruft alle Spaltennamen in der Tabelle ab. Mithilfe von GROUP_CONCAT können diese Namen in eine durch Kommas getrennte Zeichenfolge umgewandelt werden:
GROUP_CONCAT(CONCAT('`', column_name, '`'))
Schließlich können diese Elemente kombiniert werden, um eine dynamische Abfrage zu erstellen:
SELECT CONCAT( 'SELECT CONCAT_WS(\'\',', GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name), ') AS all_columns FROM yourtable;') FROM `information_schema`.`columns` WHERE `table_schema`=DATABASE() AND `table_name`='yourtable' INTO @sql;
Diese Abfrage legt die fest @sql-String zu den verketteten Spaltennamen hinzufügen. Der folgende Code führt diese Abfrage aus:
PREPARE stmt FROM @sql; EXECUTE stmt;
Das obige ist der detaillierte Inhalt vonSo verketten Sie alle Spalten in MySQL: Erkunden Sie alternative Ansätze?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!