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

Cách tìm dấu phần trăm (%) trong cột varchar trong MySQL

Để kiểm tra xem một cột varchar có chứa dấu phần trăm (%) hay không trong MySQL, bạn có thể sử dụng toán tử LIKE kết hợp với mệnh đề ESCAPE.

Cú pháp

SELECT * FROM ten_bang WHERE ten_cot LIKE '%|%%' ESCAPE '|';

Trong đó:

  • | là ký tự escape (ký tự thoát) - bạn có thể chọn ký tự khác không xuất hiện trong dữ liệu
  • %|%% tìm kiếm chuỗi chứa dấu % thực tế (ký tự % đầu và cuối là wildcard, |% đại diện cho dấu % thực)

Ví dụ minh họa

1. Tạo bảng kiểm thử

CREATE TABLE FindPercentInVarcharDemo (
    Id INT NOT NULL AUTO_INCREMENT,
    Words VARCHAR(30),
    PRIMARY KEY(Id)
);

2. Chèn dữ liệu mẫu

INSERT INTO FindPercentInVarcharDemo(Words) VALUES('This is a My%SQL Program');
INSERT INTO FindPercentInVarcharDemo(Words) VALUES('Java is an object oriented');
INSERT INTO FindPercentInVarcharDemo(Words) VALUES('C# is also an object%oriented');

3. Xem toàn bộ dữ liệu

SELECT * FROM FindPercentInVarcharDemo;

Kết quả:

+----+-------------------------------+
| Id | Words                         |
+----+-------------------------------+
| 1  | This is a My%SQL Program      |
| 2  | Java is an object oriented    |
| 4  | C# is also an object%oriented |
+----+-------------------------------+

4. Truy vấn tìm các hàng chứa dấu %

SELECT * FROM FindPercentInVarcharDemo 
WHERE Words LIKE '%|%%' ESCAPE '|';

Kết quả:

+----+-------------------------------+
| Id | Words                         |
+----+-------------------------------+
| 1  | This is a My%SQL Program      |
| 4  | C# is also an object%oriented |
+----+-------------------------------+

Giải thích chi tiết

Khi sử dụng LIKE, dấu % là ký tự đại diện (wildcard) khớp với bất kỳ chuỗi nào. Do đó, để tìm dấu % thực tế, ta cần "escape" nó. Cú pháp ESCAPE '|' khai báo ký tự | làm ký tự thoát, sau đó dùng |% để biểu diễn dấu phần trăm thực.

Lưu ý: Ký tự escape có thể là bất kỳ ký tự nào không xuất hiện trong dữ liệu (ví dụ: \, #, @, v.v.).