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

Toán tử nối chuỗi trong MySQL (tương đương || của Oracle)

Nối chuỗi trong MySQL: Dùng CONCAT(), không dùng ||

Khác với Oracle (dùng ||) hoặc SQL Server (dùng +), MySQL dùng hàm CONCAT() để nối chuỗi.

Cú pháp

CONCAT(chuoi1, chuoi2, chuoi3, ...)

Trả về NULL nếu bất kỳ đối số nào là NULL. Dùng CONCAT_WS() (With Separator) để tự bỏ qua NULL.

Ví dụ minh họa

Tạo bảng ConcatenationDemo:

CREATE TABLE ConcatenationDemo (Id INT, Name VARCHAR(100));
INSERT INTO ConcatenationDemo VALUES
(100,'John'), (101,'Sam'), (102,'Johnson'), (103,'Carol'), (104,'Bob');

Nối thành định dạng (Id,Name):

SELECT CONCAT('(', Id, ',', Name, ')') AS ConcatIdAndName
FROM ConcatenationDemo;

Kết quả

+-----------------+
| ConcatIdAndName |
+-----------------+
| (100,John)      |
| (101,Sam)       |
| (102,Johnson)   |
| (103,Carol)     |
| (104,Bob)       |
+-----------------+

CONCAT_WS() - Nối có dấu phân cách

SELECT CONCAT_WS(',', Id, Name) AS CSV_Format
FROM ConcatenationDemo;
+-----------+
| CSV_Format|
+-----------+
| 100,John  |
| 101,Sam   |
| 102,Johnson|
| 103,Carol |
| 104,Bob   |
+-----------+

CONCAT_WS bỏ qua các giá trị NULL, rất tiện cho xuất CSV.

Cài đặt sql_mode PIPES_AS_CONCAT

Nếu muốn dùng || như Oracle, bật chế độ:

SET sql_mode = 'PIPES_AS_CONCAT';
SELECT 'Hello' || 'World'; -- 'HelloWorld'

Nhưng không khuyến nghị do phụ thuộc cấu hình server.