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).

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'.
- Ví dụ:
_: Đạ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'.
- Ví dụ:
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
mysqlihoặcPDOthay 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.

Thiết lập ID tăng tự động với Identity trong SQL Server
Khóa ngoại (Foreign Key) trong MySQL
Mô hình thực thể mối kết hợp (ER)
Gộp dữ liệu với UNION và UNION ALL trong SQL
Hàm Hàm TO_DATE trong Oracle
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng