Chúng ta đã thấy lệnh SQL SELECT để lấy dữ liệu từ bảng MySQL. Chúng ta có thể sử dụng mệnh đề điều kiện gọi là Mệnh đề WHERE để lọc kết quả. Sử dụng mệnh đề WHERE này, chúng ta có thể chỉ định tiêu chí lựa chọn để chọn các bản ghi cần thiết từ một bảng
cú pháp
Khối mã sau đây có cú pháp SQL chung của lệnh SELECT với mệnh đề WHERE để lấy dữ liệu từ bảng MySQL -
SELECT field1, field2,...fieldN table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2.....
Bạn có thể sử dụng một hoặc nhiều bảng được phân tách bằng dấu phẩy để bao gồm các điều kiện khác nhau bằng cách sử dụng mệnh đề WHERE, nhưng mệnh đề WHERE là một phần tùy chọn của lệnh SELECT
Bạn có thể chỉ định bất kỳ điều kiện nào bằng mệnh đề WHERE
Bạn có thể chỉ định nhiều hơn một điều kiện bằng toán tử AND hoặc OR
Mệnh đề WHERE cũng có thể được sử dụng cùng với lệnh DELETE hoặc UPDATE SQL để chỉ định một điều kiện
Mệnh đề WHERE hoạt động giống như một điều kiện if trong bất kỳ ngôn ngữ lập trình nào. Mệnh đề này được sử dụng để so sánh giá trị đã cho với giá trị trường có sẵn trong bảng MySQL. Nếu giá trị đã cho từ bên ngoài bằng với giá trị trường có sẵn trong bảng MySQL, thì nó sẽ trả về hàng đó
Đây là danh sách các toán tử, có thể được sử dụng với mệnh đề WHERE
Giả sử trường A giữ 10 và trường B giữ 20, sau đó -
OperatorDescriptionExample=Checks if the values of the two operands are equal or not, if yes, then the condition becomes true.[A = B] is not true.!=Checks if the values of the two operands are equal or not, if the values are not equal then the condition becomes true.[A != B] is true.>Checks if the value of the left operand is greater than the value of the right operand, if yes, then the condition becomes true.[A > B] is not true.=Checks if the value of the left operand is greater than or equal to the value of the right operand, if yes, then the condition becomes true.[A >= B] is not true. SELECT * from tutorials_tbl WHERE tutorial_author = 'Sanjay'; +-------------+----------------+-----------------+-----------------+ | tutorial_id | tutorial_title | tutorial_author | submission_date | +-------------+----------------+-----------------+-----------------+ | 3 | JAVA Tutorial | Sanjay | 2007-05-21 | +-------------+----------------+-----------------+-----------------+ 1 rows in set [0.01 sec] mysql>Trừ khi thực hiện so sánh THÍCH trên một chuỗi, so sánh không phân biệt chữ hoa chữ thường. Bạn có thể làm cho trường hợp tìm kiếm của mình trở nên nhạy cảm bằng cách sử dụng từ khóa BINARY như sau -
root@host# mysql -u root -p password; Enter password:******* mysql> use TUTORIALS; Database changed mysql> SELECT * from tutorials_tbl \ WHERE BINARY tutorial_author = 'sanjay'; Empty set [0.02 sec] mysql>
Tìm nạp dữ liệu bằng PHP Script
PHP sử dụng hàm mysqli query[] hoặc mysql_query[] để chọn các bản ghi trong bảng MySQL bằng mệnh đề where. Hàm này nhận hai tham số và trả về TRUE nếu thành công hoặc FALSE nếu thất bại
cú pháp
$mysqli->query[$sql,$resultmode]Sr. Không. Tham số và Mô tả
$sql
Bắt buộc - Truy vấn SQL để chọn bản ghi trong bảng MySQL bằng Mệnh đề Where
2$resultmode
Tùy chọn - Hằng số MYSQLI_USE_RESULT hoặc MYSQLI_STORE_RESULT tùy thuộc vào hành vi mong muốn. Theo mặc định, MYSQLI_STORE_RESULT được sử dụng
Thí dụ
Hãy thử ví dụ sau để chọn một bản ghi bằng cách sử dụng mệnh đề where trong bảng -
Sao chép và dán ví dụ sau vào mysql_example. php −
Using Where Clause connect_errno ] { printf["Connect failed: %s
", $mysqli->connect_error]; exit[]; } printf['Connected successfully.
']; $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl where tutorial_author = "Mahesh"'; $result = $mysqli->query[$sql]; if [$result->num_rows > 0] { while[$row = $result->fetch_assoc[]] { printf["Id: %s, Title: %s, Author: %s, Date: %d
", $row["tutorial_id"], $row["tutorial_title"], $row["tutorial_author"], $row["submission_date"]]; } } else { printf['No record found.
']; } mysqli_free_result[$result]; $mysqli->close[]; ?>
đầu ra
Truy cập mysql_example. php được triển khai trên máy chủ web apache và xác minh đầu ra. Ở đây chúng tôi đã nhập nhiều bản ghi vào bảng trước khi chạy tập lệnh chọn