MySQL - Оператор OR (OR Operator)
Xin chào các bạn yêu thích cơ sở dữ liệu! Hôm nay, chúng ta sẽ cùng lặn sâu vào thế giới kỳ diệu của MySQL và khám phá một trong những phép toán logic hữu ích nhất của nó: оператор OR. Cuối bài hướng dẫn này, bạn sẽ sử dụng оператор OR như một chuyên gia, mở ra những khả năng mới trong các truy vấn cơ sở dữ liệu của bạn. Vậy, chúng ta cùng bắt đầu nào!
Оператор OR trong MySQL
Оператор OR trong MySQL giống như việc có một bảo vệ thân thiện tại câu lạc bộ nói: "Bạn có thể vào nếu bạn nằm trong danh sách khách mời hoặc nếu bạn biết mật khẩu bí mật." Nó cho phép chúng ta kết hợp nhiều điều kiện trong câu lệnh SQL của mình, và nếu bất kỳ điều kiện nào trong số đó là đúng, kết quả tổng thể sẽ là đúng.
Dưới đây là cú pháp cơ bản:
điều kiện1 OR điều kiện2 OR điều kiện3 ...
Mỗi điều kiện có thể là bất kỳ biểu thức hợp lệ nào của MySQL trả về giá trị boolean (đúng hoặc sai).
Оператор OR với WHERE
Оператор OR thường được sử dụng với mệnh đề WHERE trong câu lệnh SELECT. Hãy xem một ví dụ đơn giản:
Giả sử chúng ta có một bảng叫做 employees
với các cột id
, name
, department
, và salary
. Chúng ta muốn tìm tất cả các nhân viên hoặc làm việc trong bộ phận IT hoặc kiếm hơn $50,000.
SELECT * FROM employees
WHERE department = 'IT' OR salary > 50000;
Truy vấn này sẽ trả về tất cả các hàngWHERE hoặc bộ phận là 'IT' hoặc lương lớn hơn 50,000, hoặc cả hai điều kiện đều đúng.
Hãy phân tích nó:
-
SELECT *
: Chọn tất cả các cột từ bảng. -
FROM employees
: Chỉ định bảng mà chúng ta đang truy vấn. -
WHERE department = 'IT' OR salary > 50000
: Đây là điều kiện của chúng ta sử dụng оператор OR.
Nếu một nhân viên làm việc trong bộ phận IT nhưng kiếm ít hơn $50,000, họ sẽ được bao gồm. Tương tự, nếu một nhân viên kiếm hơn $50,000 nhưng không làm việc trong IT, họ cũng sẽ được bao gồm. Và tất nhiên, các nhân viên IT kiếm hơn $50,000 cũng sẽ được bao gồm!
Sử dụng nhiều оператор OR
Bây giờ, giả sử chúng ta muốn mở rộng tìm kiếm. Chúng ta đang tìm kiếm các nhân viên hoặc làm việc trong IT, hoặc trong HR, hoặc kiếm hơn $50,000. Chúng ta có thể sử dụng nhiều оператор OR:
SELECT * FROM employees
WHERE department = 'IT' OR department = 'HR' OR salary > 50000;
Truy vấn này sẽ trả về các nhân viên thỏa mãn bất kỳ trong ba điều kiện này. Nó giống như nói, "Đưa cho tôi tất cả những người phù hợp ít nhất một trong các tiêu chí này."
Nhớ rằng, càng thêm nhiều điều kiện OR, kết quả của bạn càng trở nên bao gồm hơn. Nó giống như ném một lưới rộng hơn trong biển dữ liệu!
Оперator OR với câu lệnh UPDATE
Оператор OR không chỉ dành cho câu lệnh SELECT. Chúng ta cũng có thể sử dụng nó trong câu lệnh UPDATE. Giả sử chúng ta muốn thưởng tiền cho tất cả các nhân viên trong bộ phận IT hoặc kiếm少于 $30,000:
UPDATE employees
SET bonus = 1000
WHERE department = 'IT' OR salary < 30000;
Truy vấn này sẽ thêm $1000 tiền thưởng cho bất kỳ ai trong IT, bất kỳ ai kiếm少于 $30,000, và tất nhiên, các nhân viên IT kiếm少于 $30,000.
Оперator OR với câu lệnh DELETE
Chúng ta cũng có thể sử dụng OR trong câu lệnh DELETE. Giả sử chúng ta muốn xóa tất cả các nhân viên hoặc trong bộ phận 'Temp' hoặc đã không hoạt động hơn 6 tháng:
DELETE FROM employees
WHERE department = 'Temp' OR last_active_date < DATE_SUB(CURDATE(), INTERVAL 6 MONTH);
Truy vấn này sẽ xóa bất kỳ nhân viên nào hoặc trong bộ phận 'Temp' hoặc đã không hoạt động trong 6 tháng qua. Hãy cẩn thận với câu lệnh DELETE - luôn kiểm tra điều kiện của bạn trước khi chạy chúng!
Sử dụng оператор OR trong chương trình khách
Khi sử dụng chương trình khách MySQL như công cụ dòng lệnh, bạn có thể cần sử dụng оператор OR theo một cách khác. Dưới đây là một ví dụ:
mysql> SELECT * FROM employees WHERE department = 'IT' OR salary > 50000\G
Dấu \G
ở cuối là một lệnh đặc biệt của MySQL để hiển thị kết quả theo chiều dọc, có thể dễ đọc hơn cho các bảng rộng.
Dưới đây là bảng tóm tắt các cách chúng ta đã sử dụng оператор OR:
Thao tác | Ví dụ |
---|---|
SELECT | SELECT * FROM employees WHERE department = 'IT' OR salary > 50000; |
UPDATE | UPDATE employees SET bonus = 1000 WHERE department = 'IT' OR salary < 30000; |
DELETE | DELETE FROM employees WHERE department = 'Temp' OR last_active_date < DATE_SUB(CURDATE(), INTERVAL 6 MONTH); |
Nhớ rằng, оператор OR giống như một "hoặc/cả" thân thiện trong các truy vấn SQL của bạn. Nó mang lại sự linh hoạt trong các thao tác cơ sở dữ liệu, cho phép bạn ném một lưới rộng hơn khi tìm kiếm hoặc manipul dữ liệu.
Khi chúng ta kết thúc, tôi muốn chia sẻ một câu chuyện nhỏ từ kinh nghiệm giảng dạy của mình. Tôi từng có một học sinh gặp khó khăn với оператор OR. Anh ấy liên tục nhầm lẫn nó với AND, nghĩ rằng OR sẽ cho anh ấy ít kết quả hơn. Nên tôi đã nói với anh ấy, "Hãy nghĩ về OR như một người chủ tiệc. Càng thêm nhiều điều kiện với OR, càng nhiều người được mời vào tiệc!" Khuôn mặt anh ấy sáng lên với sự hiểu biết, và từ那天 trở đi, anh ấy không bao giờ nhầm lẫn OR và AND nữa.
Thực hành sử dụng оператор OR trong các tình huống khác nhau, và sớm bạn sẽ sử dụng nó như một phù thủy cơ sở dữ liệu! Chúc bạn thành công trong việc truy vấn, và dữ liệu của bạn luôn được tổ chức tốt và dễ truy cập!
Credits: Image by storyset