Mệnh đề WHERE trong MariaDB
Mệnh đề WHERE
được sử dụng để lọc dữ liệu trong các câu lệnh như SELECT
, UPDATE
, DELETE
, và INSERT
. Nó giúp xác định điều kiện cụ thể để thao tác trên dữ liệu. Mệnh đề WHERE
thường được đặt ngay sau tên bảng trong một câu lệnh SQL. Về cơ bản, WHERE
hoạt động giống như một câu lệnh điều kiện if
trong lập trình.

Cú pháp chung của mệnh đề WHERE trong MariaDB
[COMMAND] field1, field2, ... FROM table_name1, table_name2, ... WHERE [CONDITION]
Trong đó:
[COMMAND]
là lệnh SQL nhưSELECT
,UPDATE
,DELETE
,INSERT
.field1, field2, ...
là danh sách các cột được chọn hoặc thao tác.table_name1, table_name2, ...
là các bảng chứa dữ liệu.[CONDITION]
là điều kiện lọc dữ liệu.
Các đặc điểm của mệnh đề WHERE trong MariaDB
- Không bắt buộc phải có trong câu lệnh SQL.
- Cho phép sử dụng bất kỳ điều kiện nào để lọc dữ liệu.
- Hỗ trợ nhiều điều kiện, có thể kết hợp bằng các toán tử
AND
,OR
. - Phân biệt chữ hoa - chữ thường khi sử dụng với
LIKE
. - Hỗ trợ nhiều toán tử so sánh, bao gồm:
=
(bằng)!=
hoặc<>
(khác)>
(lớn hơn)<
(nhỏ hơn)>=
(lớn hơn hoặc bằng)<=
(nhỏ hơn hoặc bằng)
Sử dụng WHERE trên giao diện dòng lệnh MariaDB
Khi làm việc trực tiếp trên giao diện dòng lệnh, bạn có thể sử dụng mệnh đề WHERE
như sau:
root@host# mysql -u root -p Enter password: ******* mysql> USE PRODUCTS; Database changed mysql> SELECT * FROM products_tbl WHERE product_manufacturer = 'XYZ Corp';
Kết quả truy vấn sẽ trả về danh sách các sản phẩm của nhà sản xuất 'XYZ Corp'
:
Bài viết này được đăng tại [free tuts .net]
+-------------+----------------+----------------------+ | ID_number | Nomenclature | product_manufacturer | +-------------+----------------+----------------------+ | 12345 | Orbitron 4000 | XYZ Corp | | 12346 | Orbitron 3000 | XYZ Corp | | 12347 | Orbitron 1000 | XYZ Corp | +-------------+----------------+----------------------+
Sử dụng điều kiện kết hợp AND
và OR
trong MariaDB
Bạn có thể kết hợp nhiều điều kiện trong WHERE
bằng các toán tử AND
hoặc OR
.
Ví dụ với AND
:
SELECT * FROM products_tbl WHERE product_name = 'Bun Janshu 3000' AND product_id <= 344;
Ví dụ kết hợp cả AND
và OR
:
SELECT * FROM products_tbl WHERE (product_name = 'Bun Janshu 3000' AND product_id < 344) OR (product_name = 'Bun Janshu 3000');
Sử dụng WHERE trong PHP trong MariaDB
Trong PHP, bạn có thể sử dụng mệnh đề WHERE
khi truy vấn dữ liệu từ MariaDB thông qua hàm mysql_query()
.
Ví dụ:
<?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 = "XYZ Corp"'; 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 "Mã sản phẩm: {$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 giao hàng: {$row['ship_date']} <br> ". "--------------------------------<br>"; } echo "Lấy dữ liệu thành công\n"; mysql_close($conn); ?>
Giải thích:
- Kết nối đến MariaDB bằng tài khoản
root
. - Chọn cơ sở dữ liệu
PRODUCTS
. - Chạy truy vấn SQL để lấy dữ liệu từ bảng
products_tbl
với điều kiệnproduct_manufacturer = "XYZ Corp"
. - Lặp qua kết quả và hiển thị thông tin sản phẩm.
- Đóng kết nối đến MariaDB.
Kết quả hiển thị trên trình duyệt khi chạy file PHP:
Mã sản phẩm: 12345 Tên sản phẩm: Orbitron 4000 Nhà sản xuất: XYZ Corp Ngày giao hàng: 01/01/17 -------------------------------- Mã sản phẩm: 12346 Tên sản phẩm: Orbitron 3000 Nhà sản xuất: XYZ Corp Ngày giao hàng: 01/02/17 -------------------------------- Mã sản phẩm: 12347 Tên sản phẩm: Orbitron 1000 Nhà sản xuất: XYZ Corp Ngày giao hàng: 01/02/17 -------------------------------- Lấy dữ liệu thành công
Lưu ý: Mã PHP trên sử dụng hàm mysql_*
, nhưng các hàm này đã bị loại bỏ trong phiên bản PHP 7 trở đi. Thay vào đó, bạn nên sử dụng mysqli_*
hoặc PDO
để làm việc với MariaDB an toàn hơn.