English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderás cómo usar los operadores AND & OR en la cláusula WHERE para filtrar registros según múltiples condiciones.
En el capítulo anterior, aprendimos cómo obtener registros de la tabla utilizando una condición única con la cláusula WHERE. Pero a veces necesitas filtrar registros según múltiples condiciones, por ejemplo, seleccionar registros de edad mayor que30 años y el país/los usuarios de la región de Estados Unidos, seleccionar los precios inferiores a100 dólares y la calificación es mayor que4los productos, etc.
El operador AND es un operador lógico que combina dos condiciones y devuelve TRUE solo si ambos resultados de las condiciones son TRUE. Generalmente se utiliza enSELECT,UPDATE,DELETEla sentenciaWHERESe utiliza el operador AND en la cláusula para formar condiciones que filtren el conjunto de resultados.
SELECT column1_name, column2_name, columnN_name FROM table_name WHERE condición1 AND condición2;
Vamos a ver algunos ejemplos que demuestren cómo funciona realmente.
Supongamos que en la base de datos tenemos una tabla llamadaemployeesla tabla que contiene los siguientes registros:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 5000 | 4 | | 2 | Tony Montana | 2002-07-15 | 6500 | 1 | | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | | 4 | Rick Deckard | 2007-01-03 | 7200 | 3 | | 5 | Martin Blank | 2008-06-24 | 5600 | NULL | +--------+--------------+------------+--------+---------+
La siguiente consulta SQL extraerá solo deemployeesLa tabla devuelve salarios (salary) mayores que7000 ydept_idigual a5esos empleados.
SELECT * FROM employees WHERE salary > 7000 AND dept_id = 5;
Después de ejecutar, obtendrá los siguientes resultados:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | +--------+--------------+------------+--------+---------+
Del mismo modo, el operador OR es un operador lógico que combina dos condiciones, pero devuelve TRUE si cualquier una de las condiciones es TRUE.
La siguiente consulta SQL extraerá deemployeesLa tabla devuelve salarios (salary) mayores que7000 odept_idigual a5de todos los empleados.
SELECT * FROM employees WHERE salary > 7000 OR dept_id = 5;
Esta vez, obtendrá los siguientes resultados:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | | 4 | Rick Deckard | 2007-01-03 | 7200 | 3 | +--------+--------------+------------+--------+---------+
También puede combinar AND y OR para crear expresiones de condiciones complejas.
La siguiente sentencia SQL devolverá salarios mayores a5000,ydept_idigual a1o5de todos los empleados.
SELECT * FROM employees WHERE salary > 5000 AND (dept_id = 1 OR dept_id = 5);
Después de ejecutar la consulta superior, obtendrá el siguiente resultado:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 2 | Tony Montana | 2002-07-15 | 6500 | 1 | | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | +--------+--------------+------------+--------+---------+