MySQLi - Cláusula WHERE

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

Sintaxis

Aquí está la sintaxis SQL genérica del comando SELECT con la cláusula WHERE para obtener datos de la tabla MySQLi:

SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • Puede usar una o más tablas separadas por comas 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 usando AND o OR operadores.

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

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

Aquí está la lista de operadores, que se puede utilizar con 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 dos operandos son iguales o no, si es así, la condición se convierte en verdadera. (A = B) no es cierto.
! = Comprueba si los valores de dos operandos son iguales o no, si los valores no son iguales, la condición se convierte en verdadera. (A! = B) es cierto.
> Comprueba si el valor del operando izquierdo es mayor que el valor del operando derecho, si es así, la condición se convierte en verdadera. (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 convierte en verdadera. (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 convierte en verdadera. (A <= B) es cierto.

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

Es una práctica común buscar registros usando Primary Key para agilizar la búsqueda.

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 MySQLi tutorials_inf.

Ejemplo

El siguiente ejemplo devolverá todos los registros de tutorials_inf tabla cuyo nombre es sai -

[email protected]# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql>SELECT * from tutorials_inf where name = 'sai';
+----+------+
| id | name |
+----+------+
|  1 | SAI  |
+----+------+
1 row in set (0.00 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 usandoBINARY palabra clave de la siguiente manera:

[email protected]# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> SELECT * from tutorials_inf \WHERE BINARY name = 'sai';
Empty set (0.02 sec)

mysql>

Obtención de datos mediante script PHP:

Puede usar el mismo comando SQL SELECT con WHERE CLAUSE en la función PHP mysqli_query().

Ejemplo

El siguiente ejemplo devolverá todos los registros de tutorials_inf tabla cuyo nombre es sai -

<?php
   $dbhost = 'localhost:3306';
   $dbuser = 'root';
   $dbpass = '';
   $dbname = 'TUTORIALS';
   $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);
   
   if(! $conn ) {
      die('Could not connect: ' . mysqli_error());
   }
   echo 'Connected successfully<br>';
   $sql = 'SELECT * from tutorials_inf where name="sai"';
   $result = mysqli_query($conn, $sql);

   if (mysqli_num_rows($result) > 0) {
      while($row = mysqli_fetch_assoc($result)) {
         echo "Name: " . $row["name"]. "<br>";
      }
   } else {
      echo "0 results";
   }
   mysqli_close($conn);
?>

La salida de muestra debería ser así:

Connected successfully
Name: SAI