Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie verkette ich MySQL-Spalten, ohne alle Spalten aufzulisten?

Barbara Streisand
Freigeben: 2024-10-25 05:27:29
Original
851 Leute haben es durchsucht

How to concatenate MySQL columns without listing all columns?

So verketten Sie MySQL-Spalten effektiv

Das Verketten aller Spalten in MySQL mit dem Schlüsselwort * ist nicht möglich. Stattdessen müssen Sie alle Spalten, die Sie kombinieren möchten, explizit auflisten.

Explizite Spaltenverkettung

Um dies zu erreichen, verwenden Sie die CONCAT-Funktion:

SELECT CONCAT(col1, col2, col3, ....)
FROM yourtable
Nach dem Login kopieren

Alternativ können Sie CONCAT_WS verwenden, um Nullwerte wegzulassen:

SELECT CONCAT_WS(',', col1, col2, col3, ....)
FROM yourtable
Nach dem Login kopieren

Dynamische Spaltenverkettung

Wenn die manuelle Spaltenspezifikation unpraktisch ist, sollten Sie den Einsatz einer dynamischen Abfrage in Betracht ziehen um alle Spaltennamen zu erhalten:

SELECT `column_name` 
FROM   `information_schema`.`columns` 
WHERE  `table_schema`=DATABASE() 
       AND `table_name`='yourtable'
Nach dem Login kopieren

Kombinieren Sie dieses Ergebnis mit GROUP_CONCAT, um eine durch Kommas getrennte Liste von Spaltennamen in Anführungszeichen zu generieren:

GROUP_CONCAT(CONCAT('`', column_name, '`'))
Nach dem Login kopieren

Vollständige dynamische Abfrage

Mit diesen Elementen können Sie eine dynamische Abfrage 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;
Nach dem Login kopieren

Diese Abfrage generiert eine Zeichenfolge ähnlich wie:

SELECT CONCAT_WS('', col1, col2, col3, ....) AS all_columns FROM yourtable
Nach dem Login kopieren

Führen Sie diese Zeichenfolge aus mit:

PREPARE stmt FROM @sql;
EXECUTE stmt;
Nach dem Login kopieren

Dieser Ansatz macht eine manuelle Spaltenauflistung überflüssig und gewährleistet eine dynamische und skalierbare Verkettung.

Das obige ist der detaillierte Inhalt vonWie verkette ich MySQL-Spalten, ohne alle Spalten aufzulisten?. 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
Neueste Artikel des Autors
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!