Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menggabungkan Semua Lajur MySQL Secara Dinamik?

Bagaimana untuk Menggabungkan Semua Lajur MySQL Secara Dinamik?

DDD
Lepaskan: 2024-10-24 18:38:22
asal
1083 orang telah melayarinya

How to Dynamically Concatenate All MySQL Columns?

Menggabungkan Semua Lajur MySQL Secara Dinamik

Dalam MySQL, menggabungkan semua lajur menggunakan kad bebas * tidak disokong. Sebaliknya, anda perlu menyatakan secara eksplisit setiap nama lajur dalam fungsi CONCAT() atau GROUP_CONCAT().

Penggabungan Lajur Eksplisit:

Anda boleh menggunakan CONCAT() berfungsi untuk menggabungkan lajur tertentu:

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

Atau, gunakan CONCAT_WS() untuk menggabungkan lajur dengan pemisah yang ditentukan, melangkau nilai nol:

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

Penggabungan Lajur Dinamik:

Untuk mengelak daripada menentukan nama lajur secara manual, anda boleh menggunakan pertanyaan dinamik untuk mendapatkan semua nama lajur daripada jadual information_schema.columns:

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

Kemudian, gunakan GROUP_CONCAT() untuk menggabungkan nama lajur ini:

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

Ini akan menghasilkan senarai nama lajur yang dipetik yang dipisahkan koma, seperti:

<code class="sql">`col1`,`col2`,`col3`,`col4`,...</code>
Salin selepas log masuk

Dengan ini, anda boleh mencipta pertanyaan dinamik untuk digabungkan semua lajur:

<code class="sql">SET @sql = CONCAT(
  'SELECT CONCAT_WS(\'\',',
  GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name),
  ') AS all_columns FROM yourtable;'
);</code>
Salin selepas log masuk

Akhir sekali, laksanakan pertanyaan dinamik:

<code class="sql">PREPARE stmt FROM @sql;
EXECUTE stmt;</code>
Salin selepas log masuk

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

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan