Làm thế nào để nối nhiều cột trong truy vấn MySQL

0
1076

Trong hướng dẫn này, tôi chia sẻ với các bạn cách có thể ghép nhiều cột trong bảng vởi cơ sở dữ liệu MySQL.

Bạn sẽ thực hiện bằng cách nối nhiều trường (cột) trong bảng dữ liệu MySQL rồi trả về một trường, sau khi đã nối các giá trị thành một.

Chúng ta sẽ thực hiện việc này với 2 hàm của MySQL như sau:

  • CONCAT
  • CONCAT_WS

CONCAT, CONCAT_WS hoạt động tương tự như nhau nhưng khác nhau về cách thức triển khai.

1) CONCAT

Hàm này được sử dụng để nối nhiều cột hoặc chuỗi thành một cột. Các đối số được phân cách nhau bằng dấu phẩy.

CONCAT( column1, column2, ... )

Hoặc

CONCAT ( string1, string2, ... )

Chúng ta có table[users]

idusernamefirstnamelastname
1panpicBangNguyen
2designwebHa AuLe Trang
3webdeveloperCamTu

Ví dụ:

Tôi sử dụng Hàm CONCAT để ghép các cột firstname, lastname và đặt ALIAS là fullname như sau:

SELECT 
username, 
CONCAT( firstname, " ", lastname ) AS fullname 
FROM users

Kết quả như sau:

idusernamefullname
1panpicBang Nguyen
2designwebHa Au Le trang
3webdeveloperCam Tu

2) CONCAT_WS

Hàm CONCAT_WS () không chỉ thêm nhiều giá trị chuỗi và biến thành một giá trị chuỗi đơn. Nó cũng cho phép bạn xác định dấu phân cách ( ” “, ” ,  “, ” – “,” _ “, …vv)

CONCAT_WS( SEPERATOR, column1, column2, ... )

Hoặc

CONCAT ( SEPERATOR, string1, string2, … )

Ví dụ:

SELECT 
username, 
CONCAT_WS( " ", firstname, lastname ) AS fullname 
FROM users
idusernamefirstnamelastname
1panpicBangNguyen
2designwebHa AuLe Trang
3webdeveloperCamTu

Kết quả:

idusernamefullname
1panpicBang Nguyen
2designwebHa Au Le trang
3webdeveloperCam Tu

Như đã nói ở trên, bạn có thể định nghĩa bất kỳ ký tự nào khác thay vì khoảng trắng.

3) Một Vài Cách Dùng CONCAT_WS Truy Vấn MySQL

SELECT * 
FROM users 
WHERE CONCAT_WS(" ",firstname,lastname) = "Bang Nguyen"

Ngoài ra bạn còn có thể dùng CONCAT CONCAT_WS vào rất nhiều bài toán thực tế. Hay chia sẻ cách dùng CONCAT_WS vào bài toán thự tế của bạn ở comment bên dưới để cùng học tập

Tham khảo thêm tại link MySQL CONCAT

nhantam
Lập trình web tại Panpic

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

50 − 42 =