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

Toán tử nối chuỗi trong MySQL: Hàm CONCAT()


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ề NULL nếu bất kỳ đối số nào là NULL. Sử dụng CONCAT_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.