MySQL không có toán tử nối chuỗi như || (trong Oracle/PostgreSQL) mà sử dụng hàm tích hợp CONCAT().
Cú pháp
SELECT CONCAT('(', column1, ',', column2, ',', column3, ')') AS alias_name
FROM table_name;
Ví dụ minh họa
Tạo bảng demo:
mysql> CREATE TABLE Concatenation_OperatorDemo ( VendorId INT, VendorName VARCHAR(100), VendorCountry VARCHAR(100) ); Query OK, 0 rows affected (0.69 sec)
Chèn dữ liệu:
mysql> INSERT INTO Concatenation_OperatorDemo VALUES (101, 'Carol', 'US'), (102, 'Bob', 'UK'), (103, 'John', 'US'), (104, 'David', 'UK'); Query OK, 4 rows affected
Kiểm tra dữ liệu:
mysql> SELECT * FROM Concatenation_OperatorDemo; +----------+------------+---------------+ | VendorId | VendorName | VendorCountry | +----------+------------+---------------+ | 101 | Carol | US | | 102 | Bob | UK | | 103 | John | US | | 104 | David | UK | +----------+------------+---------------+
Nối các cột
mysql> SELECT CONCAT('(', VendorId, ',', VendorName, ',', VendorCountry, ')')
AS ConcatenationDemo
FROM Concatenation_OperatorDemo;
Kết quả:
+-------------------+ | ConcatenationDemo | +-------------------+ | (101,Carol,US) | | (102,Bob,UK) | | (103,John,US) | | (104,David,UK) | +-------------------+
Lưu ý quan trọng
CONCAT()trả vềNULLnếu bất kỳ đối số nào làNULL. Sử dụngCONCAT_WS()(Concatenate With Separator) để bỏ qua giá trị NULL.- Cú pháp
CONCAT_WS(',', col1, col2, col3)tự động thêm dấu phân cách. - Từ MySQL 8.0, có thể dùng toán tử
||nếu bật chế độPIPES_AS_CONCAT.