Hướng dẫn like trong mysql



Mệnh đề LIKE trong MySQL được sử dụng để so sánh một giá trị với các giá trị tương tự sử dụng toán tử ký tự đại diện (wildcard). Có hai ký tự đại diện được sử dụng kết hợp với toán tử LIKE.

  • Phần trăm (%)
  • Dấu gạch dưới (_)

Dấu phần trăm (%) thể hiện không, một hoặc nhiều ký tự. Dấu gạch (_) dưới đại diện cho một số hoặc một ký tự. Những ký hiệu này có thể được sử dụng trong sự kết hợp.

Nội dung chính

  • Cú pháp
  • Ví dụ mệnh đề Like trong MySQL
    • Ví dụ sử dụng mệnh đề LIKE trong câu lệnh

Cú pháp

Cú pháp cơ bản của '%' và '_' là như sau:

SELECT FROM table_name
WHERE column LIKE 'XXXX%'or SELECT FROM table_name
WHERE column LIKE '%XXXX%'orSELECT FROM table_name
WHERE column LIKE 'XXXX_'orSELECT FROM table_name
WHERE column LIKE '_XXXX'orSELECT FROM table_name
WHERE column LIKE '_XXXX_'

Bạn có thể kết hợp N điều kiện bằng cách sử dụng các toán tử AND hoặc OR. Ở đây, XXXX có thể là bất kỳ giá trị số hay chuỗi nào.


Bảng dưới đây có một vài ví dụ cho thấy mệnh đề WHERE có mệnh đề LIKE với toán tử '%' và '_' khác nhau:

No.Câu lệnh và mô tả
1

WHERE SALARY LIKE '200%'

Tìm bất kỳ giá trị nào bắt đầu bằng 200.

2

WHERE SALARY LIKE '%200%'

Tìm bất kỳ giá trị nào có 200 vị trí bất kỳ.

3

WHERE SALARY LIKE '_00%'

Tìm bất kỳ giá trị nào có 00 ở vị trí thứ hai và thứ ba.

4

WHERE SALARY LIKE '2_%_%'

Tìm bất kỳ giá trị nào bắt đầu bằng 2 và có ít nhất 3 ký tự.

5

WHERE SALARY LIKE '%2'

Tìm bất kỳ giá trị nào kết thúc bằng 2.

6

WHERE SALARY LIKE '_2%3'

Tìm bất kỳ giá trị nào có vị trí 2 ở vị trí thứ hai và kết thúc bằng 3.

7

WHERE SALARY LIKE '2___3'

Tìm bất kỳ giá trị nào trong số năm chữ số bắt đầu bằng 2 và kết thúc bằng 3.

Ví dụ sử dụng mệnh đề LIKE trong câu lệnh

Giả sử bảng CUSTOMERS có các bản ghi như hình dưới đây.

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ha Anh   |  32 | Da Nang   |  2000.00 |
|  2 | Van Ha   |  25 | Ha Noi    |  1500.00 |
|  3 | Vu Bang  |  23 | Vinh      |  2000.00 |
|  4 | Thu Minh |  25 | Ha Noi    |  6500.00 |
|  5 | Hai An   |  27 | Ha Noi    |  8500.00 |
|  6 | Hoang    |  22 | Ha Noi    |  4500.00 |
|  7 | Binh     |  24 | Ha Noi    | 10000.00 |
+----+----------+-----+-----------+----------+

Ví dụ hiển thị tất cả các bản ghi từ bảng CUSTOMERS, với điều kiện SALARY bắt đầu với 200.

SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';

Câu lệnh trên sẽ tạo ra kết quả sau:

Hướng dẫn like trong mysql



  • Trung Nguyen
  • 04/03/2022

  • 5 min read

Trong hướng dẫn này, bạn sẽ học cách sử dụng toán tử LIKE trong 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 các giá trị expression khớp với pattern, thì toán tử LIKE trả về 1. 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 (_).

  • Ký tự đại diện phần trăm (%) 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 như sunsix. se_ khớp với bất kỳ chuỗi nào bắt đầu bằng se và được theo sau bởi bất kỳ ký tự nào chẳng hạn 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, DELETEUPDATE.

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

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

Hướng dẫn like trong mysql

Sử dụng toán tử LIKE trong MySQL với ký tự đại diện 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%';

Đầu ra:

Hướng dẫn like trong mysql

Trong ví dụ này, MySQL quét toàn bộ bảng employees để tìm nhân viên có tên bắt đầu bằng chữ cái 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 chuỗi ký tự on, ví dụ: Patterson, Thompson:

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

Đầu ra:

Hướng dẫn like trong mysql

Để kiểm tra xem một chuỗi có chứa chuỗi con 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 con.

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 chuỗi con on:

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

Đầu ra:

Hướng dẫn like trong mysql

Sử dụng toán tử LIKE trong MySQL với ký tự đại diện gạch dưới (_)

Để tìm nhân viên có tên bắt đầu bằng chữ cái T, kết thúc bằng chữ cái 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 (_) để xây dựng mẫu như sau:

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

Đầu ra:

Hướng dẫn like trong mysql

Sử dụng toán tử NOT LIKE trong 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ữ cái 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%';

Đầu ra:

Hướng dẫn like trong mysql
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 ký tự thoát một cách rõ ràng, 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% có ký tự thoát mặc định:

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

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 '$';

Đầu ra:

Hướng dẫn like trong mysql

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

Tóm lược

  • Sử dụng toán tử LIKE để kiểm tra xem một giá trị có khớp với một mẫu 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ự.
  • 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 LIKE để phủ định toán tử LIKE.

Nếu Comdy hữu ích và giúp bạn tiết kiệm thời gian

Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.

MySQL