Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Semua Lajur dalam Jadual MySQL?

Bagaimana untuk Menggabungkan Semua Lajur dalam Jadual MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-24 17:29:021017semak imbas

How to Concatenate All Columns in a MySQL Table?

Menggabungkan Semua Lajur dalam MySQL

Dalam MySQL, kata kunci kad bebas * tidak boleh digunakan dalam fungsi CONCAT() untuk menggabungkan semua lajur dalam sebuah meja. Sebaliknya, anda mesti menyenaraikan setiap nama lajur secara eksplisit:

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

Sebagai alternatif, anda boleh menggunakan fungsi CONCAT_WS() untuk melangkau nilai nol:

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

Jika anda mahu, anda boleh mengelakkan menentukan nama lajur secara manual dengan menggunakan pertanyaan dinamik. Dapatkan semula nama lajur jadual anda:

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

Gunakan GROUP_CONCAT untuk mendapatkan senarai nama lajur yang dipisahkan koma:

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

Sekarang, bina pertanyaan dinamik anda dengan menggabungkan elemen:

<code class="sql">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;</code>

Pertanyaan ini akan menetapkan pembolehubah @sql kepada rentetan yang serupa dengan:

<code class="sql">SELECT CONCAT_WS('', col1, col2, col3, ...) AS all_columns FROM yourtable;</code>

Akhir sekali, laksanakan pertanyaan dinamik ini:

<code class="sql">PREPARE stmt FROM @sql;
EXECUTE stmt;</code>

Untuk contoh dengan SQLfiddle, rujuk sumber HTML yang disediakan.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Semua Lajur dalam Jadual MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn