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

Cách dùng LIKE trong MySQL để tìm cột chứa ký tự %

Ký tự % là ký tự đại diện (wildcard) trong LIKE – khớp với **bất kỳ chuỗi nào** (kể cả rỗng). Để tìm chính xác ký tự % trong dữ liệu, phải **escape** nó bằng dấu gạch chéo ngược \.

Cú pháp

SELECT * FROM ten_bang WHERE ten_cot LIKE '\%%';

Trong chuỗi literal MySQL, \\% diễn giải thành \% (ký tự % thực), và % cuối là wildcard "bất kỳ ký tự nào sau đó".

Ví dụ minh họa

Tạo bảng tên có chứa %:

mysql> CREATE TABLE DemoTable1497 (Name VARCHAR(20));
mysql> INSERT INTO DemoTable1497 VALUES
    -> ('%JohnSmith'), ('DavidMiller'), ('CarolTaylor%'), ('%DavidMiller');

Tìm các hàng **bắt đầu bằng %** (ký tự % thực, không phải wildcard):

mysql> SELECT * FROM DemoTable1497 WHERE Name LIKE '\%%';

Kết quả:

+--------------+
| Name         |
+--------------+
| %JohnSmith   |
| %DavidMiller |
+--------------+

Các trường hợp escape khác

Muốn tìmPattern LIKEGiải thích
Ký tự %LIKE '\%' hoặc LIKE '\%%'Escape %
Ký tự _ (gạch dưới)LIKE '\_'_ khớp 1 ký tự bất kỳ
Ký tự \ (backslash)LIKE '\\\\'Escape backslash
Tùy chọn ký tự escapeLIKE '%\%%' ESCAPE '\'Mặc định là \

Lưu ý

  • Nếu dùng NO_BACKSLASH_ESCAPES SQL mode, escape bằng ký tự gấp đôi: LIKE '%%' (hai % liên tiếp) hoặc dùng ESCAPE '|' tự định nghĩa.
  • Hàm REPLACE(), LOCATE() không dùng wildcard – tìm chuỗi gốc, không cần escape.