Rumah  >  Artikel  >  pangkalan data  >  penyambungan pertanyaan mysql

penyambungan pertanyaan mysql

王林
王林asal
2023-05-20 09:57:384185semak imbas

Penyambungan pertanyaan MySQL

Apabila menggunakan MySQL untuk membuat pertanyaan, kadangkala anda perlu menyambung berbilang medan atau medan dalam berbilang jadual Dalam kes ini, anda boleh menggunakan fungsi penyambungan rentetan yang disediakan oleh MySQL untuk beroperasi. Fungsi penggabungan rentetan yang biasa digunakan termasuk CONCAT, CONCAT_WS dan GROUP_CONCAT.

  1. Fungsi CONCAT

Fungsi CONCAT digunakan untuk menyambung dua atau lebih rentetan atau medan Sintaksnya ialah:

CONCAT(string1, string2, ...)

di mana, rentetan1, rentetan2 . .. mewakili rentetan atau medan yang hendak disambungkan, yang boleh menjadi pemalar, nama lajur, ungkapan, fungsi, dsb. Sebagai contoh, untuk mencari nama dan jawatan pekerja, anda boleh menggunakan pernyataan berikut:

SELECT CONCAT(last_name, ' ', first_name) AS name, job_title
FROM employees

Fungsi CONCAT di sini menggabungkan nama_akhir dan nama_pertama dan memisahkannya dengan ruang sebagai nama medan dalam hasil pertanyaan. Keputusan yang dijalankan adalah seperti berikut:

name job_title
Geoni Bakewell Production Manager
Lemuel Marmie Shipping Manager
Lino Uselman Engineer
Honey Tunney Sales Manager
... ...
  1. Fungsi CONCAT_WS

Fungsi CONCAT_WS juga digunakan untuk penyambungan rentetan, tetapi tidak seperti fungsi CONCAT, ia boleh menentukan pembatas , sintaksnya ialah:

CONCAT_WS(separator, string1, string2, ...)

Antaranya, pemisah mewakili pemisah, yang boleh menjadi sebarang rentetan1, rentetan2... mewakili rentetan atau medan yang hendak disambungkan dan berbilang rentetan dipisahkan dengan koma. Contohnya, untuk mencari nama penuh dan alamat e-mel pekerja, anda boleh menggunakan penyataan berikut:

SELECT CONCAT_WS(' ', first_name, last_name) AS full_name, email
FROM employees

Fungsi CONCAT_WS di sini menggunakan ruang sebagai pemisah untuk menggabungkan first_name dan last_name sebagai medan full_name dalam hasil pertanyaan . Keputusan yang dijalankan adalah seperti berikut:

full_name email
Geoni Bakewell gbakewell@classicmodelcars.com
Lemuel Marmie lmarmie@classicmodelcars.com
Lino Uselman luselman@classicmodelcars.com
Honey Tunney htunney@classicmodelcars.com
... ...
  1. Fungsi GROUP_CONCAT

Fungsi GROUP_CONCAT digunakan untuk menyambung berbilang medan atau medan dalam berbilang rekod menjadi rentetan sintaks ialah:

GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val])

Antaranya, expr mewakili lajur atau ungkapan yang akan disambungkan; ORDER BY dan SEPARATOR masing-masing mewakili pengisihan dan pemisah, yang merupakan pilihan. Perlu diingat bahawa secara lalai, rentetan yang dikembalikan oleh fungsi GROUP_CONCAT mempunyai had panjang, yang boleh diubah dengan menetapkan parameter group_concat_max_len.

Sebagai contoh, untuk menanyakan nama semua pekerja di setiap jabatan dan menggabungkannya ke dalam rentetan yang dipisahkan dengan koma, anda boleh menggunakan pernyataan berikut:

SELECT department, GROUP_CONCAT(last_name ORDER BY employee_number ASC SEPARATOR ', ') AS employee_names
FROM employees
GROUP BY department

Fungsi GROUP_CONCAT di sini akan last_name mengikut kepada nombor_pekerja diisih mengikut tertib dan dipisahkan dengan koma dan ruang sebagai medan_nama_pekerja dalam hasil pertanyaan. Keputusan yang dijalankan adalah seperti berikut:

department employee_names
Admin Murphy, Patterson, Bondur, Ferrante, Firrelli
Customer Service Tseng, Vanauf, Von ^^^^^^
Finance Bow, Firrelli, Patterson, Tseng
... ...
  1. Ringkasan

Semasa proses pertanyaan MySQL, kita selalunya perlu menyambung berbilang medan atau medan dalam berbilang jadual. Apabila melaksanakan fungsi ini, MySQL menyediakan tiga fungsi penggabungan rentetan: CONCAT, CONCAT_WS dan GROUP_CONCAT, yang digunakan untuk menyambungkan dua atau lebih rentetan, menyambung sebarang rentetan berbilang dan memisahkannya dengan pembatas yang ditentukan dan menggabungkan berbilang medan ke dalam rentetan. Menggunakan fungsi ini boleh memudahkan pemprosesan data kami dan meningkatkan kecekapan pertanyaan.

Atas ialah kandungan terperinci penyambungan pertanyaan 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
Artikel sebelumnya:Adakah medan mysql wujud?Artikel seterusnya:Adakah medan mysql wujud?