MARIADB USEFUL RESOURCES
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Mệnh đề LIKE trong MariaDB

Trong MariaDB, mệnh đề WHERE được sử dụng để truy vấn dữ liệu khi cần tìm kiếm một giá trị chính xác. Tuy nhiên, nếu muốn tìm các kết quả có đặc điểm chung, ta có thể sử dụng mệnh đề LIKE để thực hiện tìm kiếm theo mẫu (pattern matching).

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Giới thiệu về mệnh đề LIKE trong MariaDB

Mệnh đề LIKE giúp kiểm tra một chuỗi có khớp với mẫu nhất định hay không. Câu lệnh sẽ trả về TRUE hoặc FALSE tùy vào kết quả đối chiếu.

Trong LIKE, ta sử dụng hai ký tự đại diện (wildcard) chính:

  • %: Đại diện cho bất kỳ số lượng ký tự nào (bao gồm cả rỗng)
    • Ví dụ: 'XYZ%' sẽ khớp với 'XYZ Corp', 'XYZ Technologies' nhưng không khớp với 'ABC XYZ'.
  • _: Đại diện cho một ký tự đơn lẻ
    • Ví dụ: 'A_B%' có thể khớp với 'A1B Corp', 'A2B Tech', nhưng không khớp với 'AB Corporation'.

Mệnh đề LIKE trong MariaDB mặc định không phân biệt chữ hoa và chữ thường. Nếu muốn phân biệt chữ hoa - chữ thường, ta cần thiết lập COLLATE utf8_bin hoặc sử dụng BINARY.

Bài viết này được đăng tại [free tuts .net]

Ngoài ra, MariaDB cũng hỗ trợ NOT LIKE, giúp truy vấn những kết quả không khớp với mẫu đã cho.

Nếu biểu thức hoặc mẫu so khớp có giá trị NULL, kết quả trả về cũng sẽ là NULL.

Cú pháp của mệnh đề LIKE trong MariaDB

SELECT cot1, cot2, ...
FROM ten_bang
WHERE cot LIKE 'mau_tim_kiem';

Trong đó:

  • cot: Cột cần tìm kiếm dữ liệu.
  • 'mau_tim_kiem': Chuỗi mẫu chứa ký tự đại diện % hoặc _.

Sử dụng LIKE trong giao diện dòng lệnh (Command Prompt) trong MariaDB

Ta có thể sử dụng LIKE trực tiếp trong MariaDB thông qua dòng lệnh như sau:

root@host# mysql -u root -p
Enter password:*******
mysql> USE TUTORIALS;
Database changed
mysql> SELECT * FROM products_tbl
   WHERE product_manufacturer LIKE 'XYZ%';

Kết quả hiển thị:

ID_number Nomenclature product_manufacturer
12345 Orbitron 4000 XYZ Corp
12346 Orbitron 3000 XYZ Corp
12347 Orbitron 1000 XYZ Corp

⮕ Lệnh trên giúp tìm kiếm tất cả sản phẩm có product_manufacturer bắt đầu bằng 'XYZ'.

Sử dụng LIKE trong PHP trong MariaDB

Ví dụ 1: Truy vấn dữ liệu sử dụng LIKE trong PHP (mysqli)

Để đảm bảo bảo mật và hiệu suất, ta nên sử dụng mysqli thay vì mysql_query() (đã lỗi thời).

<?php
   $dbhost = 'localhost';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $dbname = 'PRODUCTS';

   // Kết nối đến cơ sở dữ liệu
   $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

   // Kiểm tra kết nối
   if ($conn->connect_error) {
      die("Kết nối thất bại: " . $conn->connect_error);
   }

   // Câu lệnh SELECT sử dụng LIKE
   $sql = "SELECT product_id, product_name, product_manufacturer, ship_date
           FROM products_tbl 
           WHERE product_manufacturer LIKE 'XYZ%'";

   $result = $conn->query($sql);

   if ($result->num_rows > 0) {
      while($row = $result->fetch_assoc()) {
         echo "Product ID: " . $row['product_id'] . "<br>";
         echo "Tên sản phẩm: " . $row['product_name'] . "<br>";
         echo "Nhà sản xuất: " . $row['product_manufacturer'] . "<br>";
         echo "Ngày giao hàng: " . $row['ship_date'] . "<br>";
         echo "--------------------------------<br>";
      }
   } else {
      echo "Không tìm thấy kết quả.";
   }

   // Đóng kết nối
   $conn->close();
?>

Kết quả hiển thị trên trình duyệt:

Product ID: 12345
Tên sản phẩm: Orbitron 4000
Nhà sản xuất: XYZ Corp
Ngày giao hàng: 01/01/17
--------------------------------
Product ID: 12346
Tên sản phẩm: Orbitron 3000
Nhà sản xuất: XYZ Corp
Ngày giao hàng: 01/02/17
--------------------------------
Product ID: 12347
Tên sản phẩm: Orbitron 1000
Nhà sản xuất: XYZ Corp
Ngày giao hàng: 01/02/17
--------------------------------

Một số ví dụ nâng cao về LIKE trong

Tìm kiếm tất cả sản phẩm có chứa chữ 'Tech' trong tên nhà sản xuất

SELECT * FROM products_tbl WHERE product_manufacturer LIKE '%Tech%';

⮕ Kết quả sẽ bao gồm:

  • "ABC Technologies"
  • "XYZ Tech Corp"

Tìm tất cả sản phẩm có nhà sản xuất bắt đầu bằng 'A' và có đúng 5 ký tự

SELECT * FROM products_tbl WHERE product_manufacturer LIKE 'A____';

⮕ Kết quả sẽ bao gồm những giá trị có 5 ký tự bắt đầu bằng "A", ví dụ:

  • "Apple"
  • "Acer_"

Tìm kiếm tất cả sản phẩm KHÔNG có nhà sản xuất bắt đầu bằng 'XYZ'

SELECT * FROM products_tbl WHERE product_manufacturer NOT LIKE 'XYZ%';

⮕ Loại bỏ những nhà sản xuất có tên bắt đầu bằng "XYZ" khỏi kết quả.

Kết bài

  • LIKE là công cụ hữu ích khi cần tìm kiếm dữ liệu không cố định trong MariaDB.
  • Ký tự % giúp tìm kiếm nhiều ký tự bất kỳ.
  • Ký tự _ giúp tìm kiếm chính xác một ký tự bất kỳ.
  • MariaDB mặc định không phân biệt chữ hoa - chữ thường khi sử dụng LIKE.
  • Khi lập trình với PHP, nên sử dụng mysqli hoặc PDO thay vì mysql_query() để đảm bảo an toàn dữ liệu.

Hiểu và sử dụng tốt mệnh đề LIKE giúp bạn tối ưu hóa truy vấn, tìm kiếm dữ liệu chính xác hơn trong cơ sở dữ liệu MariaDB.

Cùng chuyên mục:

Biểu thức chính quy (Regular Expression) trong MariaDB

Biểu thức chính quy (Regular Expression) trong MariaDB

Quản lý dữ liệu trùng lặp trong MariaDB

Quản lý dữ liệu trùng lặp trong MariaDB

Dãy số (Sequences) trong MariaDB

Dãy số (Sequences) trong MariaDB

Table Cloning trong MariaDB

Table Cloning trong MariaDB

Bảng tạm (Temporary Tables) trong MariaDB

Bảng tạm (Temporary Tables) trong MariaDB

Indexes & Statistics Tables trong MariaDB

Indexes & Statistics Tables trong MariaDB

Alter Command trong MariaDB

Alter Command trong MariaDB

Transactions trong MariaDB

Transactions trong MariaDB

Biểu thức chính quy trong MariaDB

Biểu thức chính quy trong MariaDB

Giá trị NULL trong MariaDB

Giá trị NULL trong MariaDB

Mệnh đề JOIN trong MariaDB

Mệnh đề JOIN trong MariaDB

Mệnh đề ORDER BY trong MariaDB

Mệnh đề ORDER BY trong MariaDB

Câu lệnh DELETE trong MariaDB

Câu lệnh DELETE trong MariaDB

Câu lệnh UPDATE trong MariaDB

Câu lệnh UPDATE trong MariaDB

Mệnh đề WHERE trong MariaDB

Mệnh đề WHERE trong MariaDB

Các kiểu dữ liệu (Data Types) trong MariaDB

Các kiểu dữ liệu (Data Types) trong MariaDB

Tìm hiểu Select Database trong MariaDB

Tìm hiểu Select Database trong MariaDB

Xóa cơ sở dữ liệu trong MariaDB

Xóa cơ sở dữ liệu trong MariaDB

Tạo cơ sở dữ liệu (Database) trong MariaDB

Tạo cơ sở dữ liệu (Database) trong MariaDB

Cú pháp PHP trong MariaDB

Cú pháp PHP trong MariaDB

Top