Trong bài viết này, các bạn sẽ được giới thiệu mệnh đề WHERE để lọc các record từ table trong cơ sở dữ liệu MySQL dựa trên các điều kiện cụ thể bằng PHP.
1. Giới thiệu mệnh đề WHERE của câu lệnh SELECT
Mệnh đề WHERE được sử dụng để lọc các record dựa vào một điều kiện cụ thể.
Cú pháp cơ bản của mệnh đề WHERE như sau:
SELECT column_name(s) FROM table_name WHERE column_name operator value
Chúng ta hãy tạo một truy vấn SQL bằng cách sử dụng mệnh đề WHERE trong câu lệnh SELECT, sau đó chúng ta sẽ thực hiện truy vấn này thông qua việc chuyển nó đến hàm mysqli_query() của PHP để lấy dữ liệu được lọc.
Xem xét bảng cơ sở dữ liệu customer của chúng ta có các record sau đây:
ID | first_name | last_name | |
1 | Hoang | Hoang | quang@gmail.com |
2 | Le | Thuy | thuy@gmail.com |
3 | Ngo | Nguyen | nguyen@gmail.com |
2. Sử dụng mệnh đề WHERE của câu lệnh SELECT
Ví dụ dưới đây sẽ lọc các record từ bảng customer dựa vào last_name

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Customer</title>
</head>
<body>
<h3>Tìm theo tên</h3>
<form action="" method="post">
<div>
Last Name: <input name="last_name"/>
<input type="submit" value="Search"/>
</div>
</form>
<h3>Result:</h3>
<table>
<thead>
<tr>
<th>ID</th>
<th>Firstname</th>
<th>Lastname</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<?php
/*Kết nối máy chủ MySQL. Máy chủ có cài đặt mặc định (user là 'root' và không có mật khẩu)*/
$link = mysqli_connect("localhost", "root", "", "demo");
// Kểm tra kết nối
if ($link === false) {
die("ERROR: Không thể kết nối. " . mysqli_connect_error());
}
$lname = '%';
if (isset($_POST['last_name'])) {
$lname = '%' . $_POST['last_name'] . '%';
}
// Thực hiện câu lệnh SELECT
$sql = "SELECT * FROM customer WHERE last_name LIKE '$lname'";
if ($result = mysqli_query($link, $sql)) {
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_array($result)) {
?>
<tr>
<td><?php echo $row['id']; ?></td>
<td><?php echo $row['first_name']; ?></td>
<td><?php echo $row['last_name']; ?></td>
<td><?php echo $row['email']; ?></td>
</tr>
<?php
}
// Giải phóng bộ nhớ của biến
mysqli_free_result($result);
} else {
?>
<tr>
<td colspan="4">No Records.</td>
</tr>
<?php
}
} else {
echo "ERROR: Không thể thực thi câu lệnh $sql. " . mysqli_error($link);
}
// Đóng kết nối
mysqli_close($link);
?>
</tbody>
</table>
</body>
</html>
Mệnh đề WHERE trong MySQL được sử dụng để lọc record theo một điều kiện nào đó. Sau đó chúng ta có thể sử dụng kết quả lọc theo nhu cầu của mình.