MySQL 查詢拼接
在使用 MySQL 進行查詢時,有時需要將多個欄位或多張資料表中的欄位進行拼接,這時可以使用 MySQL 提供的字串拼接函數來運作。常用的字串拼接函數有 CONCAT、CONCAT_WS 和 GROUP_CONCAT。
CONCAT 函數用於連接兩個或多個字串或字段,語法為:
CONCAT(string1, string2, ...)
其中,string1、string2 ... 表示要連接的字串或字段,可以是常數、列名、表達式和函數等。例如,找出員工的姓名和職位,可以使用以下語句:
SELECT CONCAT(last_name, ' ', first_name) AS name, job_title FROM employees
這裡的 CONCAT 函數將 last_name 和 first_name 進行拼接,並以空格分隔,作為查詢結果的一個欄位 name。運行結果如下:
name | job_title |
---|---|
Lemuel Marmie | |
##Lino Uselman | |
Honey Tunney |
CONCAT_WS(separator, string1, string2, ...) 登入後複製 | 其中,separator 表示分隔符,可以是任意字串;string1、string2... 表示要連接的字串或字段,多個字串之間用逗號分隔。例如,尋找員工的全名和郵件地址,可以使用以下語句:SELECT CONCAT_WS(' ', first_name, last_name) AS full_name, email FROM employees 登入後複製 | 這裡的 CONCAT_WS 函數以空格作為分隔符,將 first_name 和 last_name 拼接起來,作為查詢結果的一個欄位 full_name。運行結果如下:
---|---|
full_name | |
##Geoni Bakewell | #gbakewell@classicmodelcars.com |
Lemuel Marmie | lmarmie@classicmodelcars.com |
#Lino Uselman | luselman@classicmodelcars.com |
Honey Tunney | htunney@classicmodelcars.com |
GROUP_CONCAT 函數
GROUP_CONCAT 函數用於將多個欄位或多筆記錄中的某個欄位拼接為一個字串,語法為:例如,查詢每個部門的所有員工姓名,並將他們以逗號分隔的形式拼接為一個字串,可以使用如下語句: | 這裡的GROUP_CONCAT 函數將last_name 按照employee_number 的順序排序,並以逗號和空格分隔,作為查詢結果的一個欄位employee_names。執行結果如下: |
---|---|
employee_names | |
##Admin | Murphy, Patterson, Bondur, Ferrante, Firrelli |
Customer Service | Tseng, Vanauf, Von ^^^^^^ |
#Finance | Bow, Firrelli, Patterson, Tseng |