Bagaimana untuk Menggabungkan Semua Lajur dalam MySQL: Meneroka Pendekatan Alternatif?

Barbara Streisand
Lepaskan: 2024-10-24 19:06:02
asal
269 orang telah melayarinya

How to Concatenate All Columns in MySQL: Exploring Alternative Approaches?

Penggabungan Semua Lajur dalam MySQL: Pendekatan Alternatif

Dalam MySQL, penggabungan semua lajur menggunakan kata kunci * tidak boleh dilaksanakan. Untuk mendapatkan semula rentetan nilai yang digabungkan merentas semua lajur, senarai nama lajur yang jelas diperlukan.

Penyenaraian Lajur Eksplisit:

Pendekatan paling mudah ialah menggabungkan individu secara manual lajur:

SELECT CONCAT(col1, col2, col3, ....)
FROM yourtable
Salin selepas log masuk

Fungsi CONCAT_WS:

Fungsi CONCAT_WS boleh digunakan untuk menggabungkan lajur sambil melangkau nilai nol:

SELECT CONCAT_WS(',', col1, col2, col3, ....)
FROM yourtable
Salin selepas log masuk

Penjanaan Pertanyaan Dinamik:

Untuk mengelak daripada menentukan nama lajur secara manual, pertanyaan dinamik boleh dibuat:

SELECT `column_name`
FROM `information_schema`.`columns`
WHERE `table_schema`=DATABASE()
AND `table_name`='yourtable';
Salin selepas log masuk

Pertanyaan ini mendapatkan semula semua nama lajur dalam jadual. Menggunakan GROUP_CONCAT, nama ini boleh ditukar menjadi rentetan yang dipisahkan koma:

GROUP_CONCAT(CONCAT('`', column_name, '`'))
Salin selepas log masuk

Akhir sekali, elemen ini boleh digabungkan untuk mencipta pertanyaan dinamik:

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;
Salin selepas log masuk

Pertanyaan ini menetapkan rentetan @sql kepada nama lajur yang digabungkan. Kod berikut melaksanakan pertanyaan ini:

PREPARE stmt FROM @sql;
EXECUTE stmt;
Salin selepas log masuk

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

sumber: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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!