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

Nối chuỗi bằng || trong MySQL (bật PIPES_AS_CONCAT)

Tóm tắt

Mặc định MySQL dùng CONCAT() hoặc || là OR logic. Bật sql_mode = PIPES_AS_CONCAT để || thành toán tử nối chuỗi (như Oracle, PostgreSQL).

Cú pháp

SET sql_mode = PIPES_AS_CONCAT;
SELECT 'Good Morning !!! ' || Name AS PipeConcatenationDemo FROM bang;

Ví dụ

1. Tạo bảng

CREATE TABLE PipeConcatDemo (Name VARCHAR(20));
INSERT INTO PipeConcatDemo VALUES ('Larry'), ('John'), ('Maxwell'), ('Bob');

2. Bật mode và nối

SET sql_mode = PIPES_AS_CONCAT;
SELECT 'Good Morning !!! ' || Name AS PipeConcatenationDemo FROM PipeConcatDemo;

3. Kết quả

+--------------------------+
| PipeConcatenationDemo    |
+--------------------------+
| Good Morning !!! Larry   |
| Good Morning !!! John    |
| Good Morning !!! Maxwell |
| Good Morning !!! Bob     |
+--------------------------+

Lưu ý quan trọng

  • PIPES_AS_CONCAT là **session-level** – mất khi reconnect. Để vĩnh viễn: thêm vào my.cnf sql_mode=...,PIPES_AS_CONCAT.
  • Khi bật, || **không còn là OR logic** – phải dùng OR từ khóa.
  • Tương thích ứng dụng chuyển từ Oracle/PostgreSQL.
  • Khuyến nghị: dùng CONCAT() hoặc CONCAT_WS() chuẩn MySQL, không phụ thuộc sql_mode.

So sánh

CáchCú phápƯu điểmNhược điểm
CONCATCONCAT(a, b, c)Chuẩn, luôn hoạt độngDài hơn
CONCAT_WSCONCAT_WS(',', a, b, c)Tự bỏ NULL, có separatorChỉ dùng cho join với separator
|| (PIPES_AS_CONCAT)a || b || cNgắn, quen Oracle/PGCần set sql_mode, không portable