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

Chèn ký tự pipe (|) vào chuỗi trong MySQL - Không có vấn đề gì!

Khác với một số hệ thống cơ sở dữ liệu khác, MySQL cho phép chèn ký tự pipe (|) bình thường trong chuỗi string, không cần escape đặc biệt khi dùng trong lệnh INSERT thông thường.

Ví dụ minh họa

Tạo bảng demo:

mysql> CREATE TABLE PipeInsertDemo (
    -> UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> UserPassword VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.52 sec)

Chèn dữ liệu chứa ký tự |:

mysql> INSERT INTO PipeInsertDemo(UserPassword) VALUES ('John123|');
Query OK, 1 row affected (0.15 sec)

mysql> INSERT INTO PipeInsertDemo(UserPassword) VALUES ('|123456CarolTaylor');
Query OK, 1 row affected (0.13 sec)

mysql> INSERT INTO PipeInsertDemo(UserPassword) VALUES ('Adam|345Smith');
Query OK, 1 row affected (0.20 sec)

Xem dữ liệu:

mysql> SELECT * FROM PipeInsertDemo;
+--------+--------------------+
| UserId | UserPassword       |
+--------+--------------------+
| 1      | John123|           |
| 2      | |123456CarolTaylor |
| 3      | Adam|345Smith      |
+--------+--------------------+

Khi nào cần escape?

  • Trong chuỗi liên kết (string literal) trong code ứng dụng (PHP, Python, Java...), pipe không cần escape
  • Trong biểu thức chính quy (REGEXP), pipe là ký tự đặc biệt (OR), cần escape: '\\|'
  • Trong LOAD DATA INFILE với FIELDS TERMINATED BY '|', pipe là delimiter

Ký tự thực sự cần escape trong MySQL string

Kết luận: Pipe (|) là ký tự bình thường trong MySQL string literal, không gây lỗi khi INSERT.

Ký tựEscape sequenceÝ nghĩa
'\'Dấu nháy đơn
"\"Dấu nháy kép
\\\Backslash
NULL\0Null byte
Backspace\b
Tab\t
Newline\n
Carriage return\r
Control+Z\ZEOF trên Windows