Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie verkette ich alle MySQL-Spalten dynamisch?

DDD
Freigeben: 2024-10-24 18:38:22
Original
964 Leute haben es durchsucht

How to Dynamically Concatenate All MySQL Columns?

Dynamisches Verketten aller MySQL-Spalten

In MySQL wird das Verketten aller Spalten mit dem Platzhalter * nicht unterstützt. Stattdessen müssen Sie jeden Spaltennamen explizit in den Funktionen CONCAT() oder GROUP_CONCAT() angeben.

Explizite Spaltenverkettung:

Sie können CONCAT() verwenden. Funktion zum Verketten bestimmter Spalten:

<code class="sql">SELECT CONCAT(col1, col2, col3, ...)
FROM yourtable;</code>
Nach dem Login kopieren

Oder verwenden Sie CONCAT_WS(), um Spalten mit einem angegebenen Trennzeichen zu verketten und Nullwerte zu überspringen:

<code class="sql">SELECT CONCAT_WS(',', col1, col2, col3, ...)
FROM yourtable;</code>
Nach dem Login kopieren

Dynamische Spaltenverkettung:

Um die manuelle Angabe von Spaltennamen zu vermeiden, können Sie eine dynamische Abfrage verwenden, um alle Spaltennamen aus der Tabelle information_schema.columns abzurufen:

<code class="sql">SELECT `column_name`
FROM `information_schema`.`columns`
WHERE `table_schema` = DATABASE()
  AND `table_name` = 'yourtable';</code>
Nach dem Login kopieren

Verwenden Sie dann GROUP_CONCAT() zum Kombinieren diese Spaltennamen:

<code class="sql">GROUP_CONCAT(CONCAT('`', column_name, '`'))</code>
Nach dem Login kopieren

Dies führt zu einer durch Kommas getrennten Liste von Spaltennamen in Anführungszeichen, wie zum Beispiel:

<code class="sql">`col1`,`col2`,`col3`,`col4`,...</code>
Nach dem Login kopieren

Damit können Sie eine dynamische Abfrage zum Verketten erstellen alle Spalten:

<code class="sql">SET @sql = CONCAT(
  'SELECT CONCAT_WS(\'\',',
  GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name),
  ') AS all_columns FROM yourtable;'
);</code>
Nach dem Login kopieren

Führen Sie abschließend die dynamische Abfrage aus:

<code class="sql">PREPARE stmt FROM @sql;
EXECUTE stmt;</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie verkette ich alle MySQL-Spalten dynamisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!