Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Ghép nối 2 cột thành 1 cột cách nhau bằng dấu gạch ngang trong MySQL với CONCAT

Giới thiệu

Hàm CONCAT(str1, str2, ...) nối chuỗi. Dùng để gộp CountryCode và CountryName thành 100-US, 101-UK...

Ví dụ thực hành

1. Tạo bảng DemoTable835

mysql> CREATE TABLE DemoTable835 (
    CountryCode INT,
    CountryName VARCHAR(100)
);

2. Chèn dữ liệu

mysql> INSERT INTO DemoTable835 VALUES (100,'US'),(101,'UK'),(102,'AUS'),(103,'ENG');

3. Nối cột với dấu '-'

mysql> SELECT CONCAT(CountryCode, '-', CountryName) FROM DemoTable835;

4. Kết quả

+-------------------------------------+
| CONCAT(CountryCode, '-', CountryName) |
+-------------------------------------+
| 100-US                              |
| 101-UK                              |
| 102-AUS                             |
| 103-ENG                             |
+-------------------------------------+

Mở rộng

-- Đặt alias cho cột kết quả
SELECT CONCAT(CountryCode, '-', CountryName) AS CountryCodeName FROM DemoTable835;

-- Xử lý NULL an toàn (CONCAT trả NULL nếu có đối số NULL)
SELECT CONCAT(COALESCE(CountryCode, ''), '-', COALESCE(CountryName, '')) FROM DemoTable835;

-- Dùng CONCAT_WS (With Separator) - tự bỏ qua NULL
SELECT CONCAT_WS('-', CountryCode, CountryName) FROM DemoTable835;
-- NULL → bỏ qua, không tạo '--'

Lưu ý

  • CONCAT trả về NULL nếu bất kỳ đối số nào là NULL.
  • CONCAT_WS(sep, ...) bỏ qua NULL, an toàn hơn cho dữ liệu có thể NULL.
  • Kết quả kiểu VARCHAR (hoặc TEXT nếu dài).
  • Có thể dùng trong UPDATE để lưu cột ghép: UPDATE t SET code_name = CONCAT_WS('-', code, name).