MySQL - Cláusula WHERE

Hemos visto el SQL SELECTcomando para obtener datos de una tabla MySQL. Podemos usar una cláusula condicional llamadaWHERE Clausepara filtrar los resultados. Usando esta cláusula WHERE, podemos especificar un criterio de selección para seleccionar los registros requeridos de una tabla.

Sintaxis

El siguiente bloque de código tiene una sintaxis SQL genérica del comando SELECT con la cláusula WHERE para obtener datos de la tabla MySQL:

SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • Puede usar una o más tablas separadas por una coma para incluir varias condiciones usando una cláusula WHERE, pero la cláusula WHERE es una parte opcional del comando SELECT.

  • Puede especificar cualquier condición utilizando la cláusula WHERE.

  • Puede especificar más de una condición utilizando el AND o la OR operadores.

  • Se puede usar una cláusula WHERE junto con el comando DELETE o UPDATE SQL también para especificar una condición.

los WHERE la cláusula funciona como una if conditionen cualquier lenguaje de programación. Esta cláusula se utiliza para comparar el valor dado con el valor del campo disponible en una tabla MySQL. Si el valor dado desde fuera es igual al valor del campo disponible en la tabla MySQL, entonces devuelve esa fila.

Aquí está la lista de operadores, que se puede utilizar con el WHERE cláusula.

Suponga que el campo A tiene 10 y el campo B tiene 20, entonces -

Operador Descripción Ejemplo
= Comprueba si los valores de los dos operandos son iguales o no, en caso afirmativo, la condición se cumple. (A = B) no es cierto.
! = Comprueba si los valores de los dos operandos son iguales o no, si los valores no son iguales, la condición se vuelve verdadera. (A! = B) es cierto.
> Comprueba si el valor del operando izquierdo es mayor que el valor del operando derecho; en caso afirmativo, la condición se cumple. (A> B) no es cierto.
< Comprueba si el valor del operando izquierdo es menor que el valor del operando derecho, si es así, la condición se convierte en verdadera. (A <B) es cierto.
> = Comprueba si el valor del operando izquierdo es mayor o igual que el valor del operando derecho; si es así, la condición se cumple. (A> = B) no es cierto.
<= Comprueba si el valor del operando izquierdo es menor o igual que el valor del operando derecho; si es así, la condición se cumple. (A <= B) es cierto.

La cláusula WHERE es muy útil cuando desea obtener las filas seleccionadas de una tabla, especialmente cuando usa la MySQL Join. Las uniones se tratan en otro capítulo.

Es una práctica común buscar registros utilizando la Primary Key para hacer la búsqueda más rápida.

Si la condición dada no coincide con ningún registro de la tabla, la consulta no devolverá ninguna fila.

Obtención de datos desde el símbolo del sistema

Esto usará el comando SQL SELECT con la cláusula WHERE para recuperar los datos seleccionados de la tabla MySQL - tutorials_tbl.

Ejemplo

El siguiente ejemplo devolverá todos los registros del tutorials_tbl tabla cuyo nombre de autor es Sanjay.

[email protected]# 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>

A menos que realice una LIKEcomparación en una cadena, la comparación no distingue entre mayúsculas y minúsculas. Puede hacer que su búsqueda distinga entre mayúsculas y minúsculas utilizando elBINARY palabra clave de la siguiente manera:

[email protected]# 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>

Obtención de datos mediante un script PHP

Puede usar el mismo comando SQL SELECT con la CLAUSULA WHERE en la función PHP mysql_query(). Esta función se usa para ejecutar el comando SQL y luego otra función PHPmysql_fetch_array()se puede utilizar para recuperar todos los datos seleccionados. Esta función devuelve una fila como una matriz asociativa, una matriz numérica o ambas. Esta función devuelve FALSE si no hay más filas.

Ejemplo

El siguiente ejemplo devolverá todos los registros del tutorials_tbl tabla cuyo nombre de autor es Sanjay -

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'SELECT tutorial_id, tutorial_title, 
      tutorial_author, submission_date
      FROM tutorials_tbl
      WHERE tutorial_author = "Sanjay"';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );

   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Tutorial ID :{$row['tutorial_id']}  <br> ".
      "Title: {$row['tutorial_title']} <br> ".
      "Author: {$row['tutorial_author']} <br> ".
      "Submission Date : {$row['submission_date']} <br> ".
      "--------------------------------<br>";
   } 

   echo "Fetched data successfully\n";
   mysql_close($conn);
?>