Bagaimana untuk menggabungkan lajur MySQL tanpa menyenaraikan semua lajur?

Barbara Streisand
Lepaskan: 2024-10-25 05:27:29
asal
851 orang telah melayarinya

How to concatenate MySQL columns without listing all columns?

Cara Menggabungkan Lajur MySQL Dengan Berkesan

Menggabungkan semua lajur dalam MySQL menggunakan kata kunci * tidak boleh dilaksanakan. Sebaliknya, anda perlu menyenaraikan semua lajur yang anda ingin gabungkan secara eksplisit.

Penggabungan Lajur Eksplisit

Untuk mencapai ini, gunakan fungsi CONCAT:

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

Sebagai alternatif, anda boleh menggunakan CONCAT_WS untuk meninggalkan nilai nol:

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

Penggabungan Lajur Dinamik

Jika spesifikasi lajur manual menyusahkan, pertimbangkan untuk menggunakan pertanyaan dinamik untuk mendapatkan semua nama lajur:

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

Gabungkan hasil ini dengan GROUP_CONCAT untuk menjana senarai nama lajur yang dipetik yang dipisahkan koma:

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

Pertanyaan Dinamik Lengkap

Dengan elemen ini, anda boleh membina 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 menjana rentetan serupa dengan:

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

Laksanakan rentetan ini menggunakan:

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

Pendekatan ini menghapuskan keperluan untuk penyenaraian lajur manual, memastikan penggabungan dinamik dan berskala.

Atas ialah kandungan terperinci Bagaimana untuk menggabungkan lajur MySQL tanpa menyenaraikan semua lajur?. 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!