Cách sử dụng toán tử LIKE trong MySQL

27/09/2022 - lượt xem
Chia sẻ
 
5/5 - (2 bình chọn)

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn học cách sử dụng toán tử  LIKE của MySQL để truy vấn dữ liệu dựa trên một mẫu được chỉ định.

Giới thiệu về toán tử LIKE trong MySQL

Toán tử LIKE là một toán tử logic kiểm tra xem một chuỗi có chứa một mẫu được chỉ định hay không.

Đây là cú pháp của toán tử LIKE:

expression LIKE pattern ESCAPE escape_character

Trong cú pháp này, nếu expression khớp với mẫu, toán tử LIKE trả về 1 và ngược lại, nó trả về 0.

MySQL cung cấp hai ký tự đại diện để xây dựng các mẫu: phần trăm  %  và dấu gạch dưới _.

  • Phần trăm (%) ký tự đại diện khớp với bất kỳ chuỗi nào không hoặc nhiều ký tự.
  • Ký tự đại diện gạch dưới (_) khớp với bất kỳ ký tự đơn nào.

Ví dụ: s%  khớp với bất kỳ chuỗi nào bắt đầu bằng ký tự  s , chẳng hạn như sun và  six.  se_ khớp với bất kỳ chuỗi nào bắt đầu bằng se và theo sau là bất kỳ ký tự nào như seesea.

Khi mẫu có chứa ký tự đại diện và bạn muốn coi nó như một ký tự thông thường, bạn có thể sử dụng mệnh đề  ESCAPE.

Thông thường, bạn sẽ sử dụng toán tử LIKE trong mệnh đề WHERE của câu lệnh  SELECT , DELETE, and UPDATE.

Ví dụ về toán tử LIKE trong MySQL

Cùng theo dõi và thực hành với một số ví dụ về việc sử dụng toán tử LIKE . Chúng tôi sẽ sử dụng bảng  employees sau từ cơ sở dữ liệu mẫu để trình diễn:

A) Sử dụng toán tử LIKE của MySQL với các ví dụ về ký tự đại diện tỷ lệ phần trăm (%)

Ví dụ này sử dụng toán tử LIKE để tìm nhân viên có tên bắt đầu bằng chữ cái a:

SELECT 
    employeeNumber, 
    lastName, 
    firstName
FROM
    employees
WHERE
    firstName LIKE 'a%';

Kết quả:

Trong ví dụ này, MySQL quét toàn bộ bảng nhân viên để tìm nhân viên có tên bắt đầu bằng chữ a và theo sau là bất kỳ số ký tự nào.

Ví dụ này sử dụng toán tử LIKE để tìm các nhân viên có họ kết thúc bằng on, ví dụ:  PattersonThompson:

SELECT 
    employeeNumber, 
    lastName, 
    firstName
FROM
    employees
WHERE
    lastName LIKE '%on';

Kết quả:

Để kiểm tra xem một chuỗi có chứa chuỗi cần tìm hay không, bạn có thể sử dụng ký tự đại diện phần trăm (%) ở đầu và cuối chuỗi cần tìm.

Ví dụ: truy vấn sau sử dụng toán tử  LIKE để tìm tất cả nhân viên có họ chứa on:

SELECT 
    employeeNumber, 
    lastName, 
    firstName
FROM
    employees
WHERE
    lastname LIKE '%on%';

Kết quả:

B) Sử dụng toán tử LIKE của MySQL với ví dụ về ký tự đại diện gạch dưới (_)

Để tìm nhân viên có tên bắt đầu bằng chữ T, kết thúc bằng chữ m và chứa bất kỳ ký tự đơn nào giữa ví dụ: Tom, Tim, bạn sử dụng ký tự đại diện gạch dưới (_) để tạo mẫu như sau:

SELECT 
    employeeNumber, 
    lastName, 
    firstName
FROM
    employees
WHERE
    firstname LIKE 'T_m';

Kết quả:

C) Sử dụng ví dụ toán tử NOT LIKE MySQL

MySQL cho phép bạn kết hợp toán tử NOT với toán tử LIKE để tìm một chuỗi không khớp với một mẫu cụ thể.

Giả sử bạn muốn tìm kiếm những nhân viên có họ không bắt đầu bằng chữ B, bạn có thể sử dụng toán tử NOT LIKE như sau:

SELECT 
    employeeNumber, 
    lastName, 
    firstName
FROM
    employees
WHERE
    lastName NOT LIKE 'B%';

Kết quả:

Lưu ý rằng mẫu không phân biệt chữ hoa chữ thường. Do đó, các mẫu  b%B%  trả về cùng một kết quả.

Toán tử LIKE trong MySQL với mệnh đề ESCAPE

Đôi khi mẫu có thể chứa các ký tự đại diện, ví dụ: 10%, _20, v.v.

Trong trường hợp này, bạn có thể sử dụng mệnh đề ESCAPE để chỉ định ký tự thoát để toán tử LIKE diễn giải ký tự đại diện dưới dạng ký tự chữ.

Nếu bạn không chỉ định rõ ràng ký tự thoát, thì ký tự gạch chéo ngược (\) là ký tự thoát mặc định.

Ví dụ: nếu bạn muốn tìm các sản phẩm có mã sản phẩm chứa chuỗi _20, bạn có thể sử dụng mẫu  %\_20%  với ký tự thoát mặc định:

SELECT 
    productCode, 
    productName
FROM
    products
WHERE
    productCode LIKE '%\_20%';

Kết quả:

Ngoài ra, bạn có thể chỉ định một ký tự thoát khác, ví dụ: $ bằng cách sử dụng mệnh đề ESCAPE:

SELECT 
    productCode, 
    productName
FROM
    products
WHERE
    productCode LIKE '%$_20%' ESCAPE '$';

Kết quả:

Mẫu  %$_20%  khớp với bất kỳ chuỗi nào có chứa chuỗi  _20.

Tổng kết

  • Sử dụng toán tử LIKE để kiểm tra xem một giá trị có khớp với một mẫu hay không.
  • Ký tự đại diện % khớp với không hoặc nhiều ký tự.
  • Ký tự đại diện _ khớp với một ký tự.
  • Sử dụng mệnh đề ESCAPE chỉ định một ký tự thoát khác với ký tự thoát mặc định (\).
  • Sử dụng toán tử NOT để phủ định toán tử LIKE.

Bài viết liên quan:

Các bạn có thể xem thêm ở đây: https://www.mysqltutorial.org/mysql-like/

 

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    5/5 - (2 bình chọn)

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm