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 ý
CONCATtrả vềNULLnế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ặcTEXTnếu dài). - Có thể dùng trong
UPDATEđể lưu cột ghép:UPDATE t SET code_name = CONCAT_WS('-', code, name).