MySQL Cláusula WHERE: AND, OR, IN, NOT IN Ejemplo de consulta
¿Qué es la cláusula WHERE? MySQL?
Dónde cláusula in MySQL es una palabra clave utilizada para especificar los criterios exactos de los datos o filas que se verán afectados por la declaración SQL especificada. La cláusula WHERE se puede utilizar con declaraciones SQL como INSERT, UPDATE, SELECT y DELETE para filtrar registros y realizar diversas operaciones con los datos.
Vimos cómo consultar datos de un base de datos usando la instrucción SELECT en el tutorial anterior. La instrucción SELECT devolvió todos los resultados de la tabla de la base de datos consultada.
Sin embargo, hay ocasiones en las que queremos restringir los resultados de la consulta a una condición específica. La cláusula WHERE de SQL resulta útil en tales situaciones.

Sintaxis de la cláusula WHERE
La sintaxis básica de la cláusula WHERE cuando se utiliza en un MySQL La declaración SELECT WHERE es la siguiente.
SELECT * FROM tableName WHERE condition;
AQUÍ
- “SELECCIONAR * DESDE nombre de tabla” es el estándar Instrucción SELECT
- "DÓNDE" es la palabra clave que restringe nuestro conjunto de resultados de consulta de selección y "condición" es el filtro que se aplicará sobre los resultados. El filtro podría ser un rango, un valor único o una subconsulta.
Veamos ahora un ejemplo practico.
Supongamos que queremos obtener los datos personales de un miembro de la tabla de miembros dado el número de membresía 1, usaríamos el siguiente script para lograrlo.
SELECT * FROM `members` WHERE `membership_number` = 1;
Ejecutando el script anterior en MySQL banco de trabajo en “myflixdb” produciría los siguientes resultados.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
Cláusula WHERE combinada con – Y LÓGICA Operator
La condición WHERE en MySQL cuando se usa junto con el operador lógico AND, solo se ejecuta si se cumplen TODOS los criterios de filtro especificados.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
Cláusula WHERE combinada con – OR LÓGICA Operator
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
Cláusula WHERE combinada con – IN Palabra clave
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);
Ejecutando el script anterior en MySQL El banco de trabajo contra “myflixdb” produce los siguientes resultados.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
Cláusula WHERE combinada con – NO EN Palabra clave
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);
Ejecutando el script anterior en MySQL El banco de trabajo contra “myflixdb” produce los siguientes resultados.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Cláusula WHERE combinada con – COMPARACIÓN Operatoros
= Igual a
SELECT * FROM `members` WHERE `gender` = 'Female';
Ejecutando el script anterior en MySQL El banco de trabajo contra “myflixdb” produce los siguientes resultados.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
> Más que
payment_id | membership_number | payment_date | description | amount_paid | external_reference_number |
---|---|---|---|---|---|
1 | 1 | 23-07-2012 | Movie rental payment | 2500 | 11 |
3 | 3 | 30-07-2012 | Movie rental payment | 6000 | NULL |
No es igual a
SELECT * FROM `movies` WHERE `category_id`<> 1;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
Resumen
- La cláusula WHERE de SQL se utiliza para restringir el número de filas afectadas por SELECT, UPDATE o BORRAR consulta.
- La condición WHERE en SQL se puede utilizar junto con operadores lógicos como AND y OR, operadores de comparación como, =, etc.
- Cuando se utiliza con el AND operador logico, se deben cumplir todos los criterios.
- Cuando se utiliza con el operador lógico OR, se debe cumplir cualquiera de los criterios.
- La palabra clave IN se utiliza para seleccionar filas que coinciden con una lista de valores.
Brain Teaser
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
Ejecutando el script anterior en MySQL El banco de trabajo arroja los siguientes resultados.
reference_number | transaction_date | return_date | membership_number | movie_id | movie_returned |
---|---|---|---|---|---|
14 | 21-06-2012 | 24-06-2012 | 2 | 2 | 0 |