Mệnh đề LIKE trong MariaDB
Mệnh đề LIKE trong MariaDB là một công cụ mạnh mẽ hỗ trợ truy vấn dữ liệu linh hoạt bằng cách tìm kiếm theo mẫu (pattern matching), thay vì chỉ dựa vào so khớp chính xác như mệnh đề WHERE. Điều này đặc biệt hữu ích trong những trường hợp cần lấy dữ liệu có các đặc điểm chung hoặc tìm kiếm các giá trị chứa ký tự tương tự trong bảng dữ liệu. Với khả năng hỗ trợ ký tự đại diện như %
và _
, mệnh đề LIKE giúp đơn giản hóa việc thực hiện các truy vấn phức tạp và mở rộng phạm vi tìm kiếm dữ liệu một cách hiệu quả.
Công dụng của mệnh đề LIKE
- LIKE trả về
TRUE
hoặcFALSE
dựa trên sự so khớp của giá trị với mẫu được cung cấp. - Mẫu (pattern) có thể bao gồm các ký tự đại diện:
%
: Đại diện cho bất kỳ số lượng ký tự nào (bao gồm không ký tự nào)._
: Đại diện cho chính xác một ký tự.
- Tính năng so khớp trong LIKE không phân biệt chữ hoa và chữ thường (case-insensitive) theo mặc định. Muốn phân biệt, cần thêm các cài đặt đặc biệt.
Cú pháp cơ bản của mệnh đề LIKE trong MariaDB
SELECT field, field2,... FROM table_name, table_name2,... WHERE field LIKE 'pattern';
Sử dụng mệnh đề LIKE trong dòng lệnh trong MariaDB
Ví dụ: Truy vấn dữ liệu có giá trị bắt đầu bằng XYZ
.
root@host# mysql -u root -p password; Enter password:******* mysql> use TUTORIALS; Database changed mysql> SELECT * FROM products_tbl WHERE product_manufacturer LIKE 'XYZ%'; +-------------+----------------+----------------------+ | ID_number | Nomenclature | product_manufacturer | +-------------+----------------+----------------------+ | 12345 | Orbitron 4000 | XYZ Corp | | 12346 | Orbitron 3000 | XYZ Corp | | 12347 | Orbitron 1000 | XYZ Corp | +-------------+----------------+----------------------+
Trong ví dụ này:
XYZ%
là mẫu dùng để tìm kiếm tất cả các giá trị bắt đầu bằng "XYZ" trong cột product_manufacturer.
Sử dụng mệnh đề LIKE trong PHP trong MariaDB
Dưới đây là ví dụ sử dụng PHP để áp dụng mệnh đề LIKE:
Bài viết này được đăng tại [free tuts .net]
<?php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if (! $conn ) { die('Không thể kết nối: ' . mysql_error()); } $sql = 'SELECT product_id, product_name, product_manufacturer, ship_date FROM products_tbl WHERE product_manufacturer LIKE "XYZ%"'; mysql_select_db('PRODUCTS'); $retval = mysql_query($sql, $conn); if (! $retval ) { die('Không thể lấy dữ liệu: ' . mysql_error()); } while ($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "Product ID: {$row['product_id']} <br> ". "Tên sản phẩm: {$row['product_name']} <br> ". "Nhà sản xuất: {$row['product_manufacturer']} <br> ". "Ngày xuất xưởng: {$row['ship_date']} <br> ". "--------------------------------<br>"; } echo "Dữ liệu đã được lấy thành công\n"; mysql_close($conn); ?>