Làm cách nào để viết nhiều WHERE trong MySQL?

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.<=Checks if the value of the left operand is less than or equal to the value of the right operand, if yes, then the condition becomes true.(A <= B) is true.

Mệnh đề WHERE rất hữu ích khi bạn muốn tìm nạp các hàng đã chọn từ một bảng, đặc biệt khi bạn sử dụng MySQL Join. Tham gia được thảo luận trong một chương khác

Thực tế phổ biến là tìm kiếm các bản ghi bằng Khóa chính để giúp tìm kiếm nhanh hơn

Nếu điều kiện đã cho không khớp với bất kỳ bản ghi nào trong bảng, thì truy vấn sẽ không trả về bất kỳ hàng nào

Lấy dữ liệu từ Command Prompt

Điều này sẽ sử dụng lệnh SQL SELECT với mệnh đề WHERE để tìm nạp dữ liệu đã chọn từ bảng MySQL – tutorials_tbl

Thí dụ

Ví dụ sau sẽ trả về tất cả các bản ghi từ bảng tutorials_tbl có tên tác giả là Sanjay

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> 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

Làm cách nào để sử dụng nhiều mệnh đề WHERE trong MySQL?

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 .

Tôi có thể có nhiều WHERE trong SQL không?

Bạn có thể chỉ định nhiều điều kiện trong một mệnh đề WHERE , chẳng hạn như truy xuất các hàng dựa trên các giá trị trong nhiều cột. Bạn có thể sử dụng toán tử AND và OR để kết hợp hai hoặc nhiều điều kiện thành một điều kiện phức hợp.

Làm cách nào để CHỌN nhiều giá trị trong MySQL?

Để chọn nhiều giá trị, bạn có thể sử dụng mệnh đề where với toán tử OR và IN .

Làm cách nào để sử dụng nhiều hoặc trong MySQL?

Ví dụ - Với câu lệnh DELETE . DELETE FROM contacts WHERE state = 'California' AND (last_name = 'Smith' OR last_name = 'Anderson'); This MySQL AND and OR condition example would delete all records from the contacts table whose state is California and last_name was either Smith or Anderson.