MySQLi - Cláusula LIKE

Hemos visto SQL SELECTcomando para obtener datos de la tabla MySQLi. También podemos usar una cláusula condicional llamadaWHERE cláusula para seleccionar los registros requeridos.

Una cláusula WHERE con el signo igual (=) funciona bien cuando queremos hacer una coincidencia exacta. Como si "nombre = 'sai'". Pero puede haber un requisito donde queramos filtrar todos los resultados donde el nombre debe contener "johar". Esto se puede manejar usando SQLLIKE cláusula junto con la cláusula WHERE.

Si se usa la cláusula SQL LIKE junto con% caracteres, entonces funcionará como un metacarácter (*) en UNIX mientras enumera todos los archivos o directorios en el símbolo del sistema.

Sin un carácter%, la cláusula LIKE es muy similar al signo igual junto con la cláusula WHERE.

Sintaxis

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

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • Puede especificar cualquier condición utilizando la cláusula WHERE.

  • Puede usar la cláusula LIKE junto con la cláusula WHERE.

  • Puede utilizar la cláusula LIKE en lugar del signo igual.

  • Cuando se usa LIKE junto con el signo%, funcionará como una búsqueda de metacaracteres.

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

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

Usando la cláusula LIKE en el símbolo del sistema

Esto usará el comando SQL SELECT con la cláusula WHERE ... LIKE 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 de autor termina con johar -

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

mysql> use TUTORIALS;
Database changed

mysql> SELECT * from tutorials_inf 
   -> WHERE name LIKE '%johar';
+----+-------+
| id | name  |
+----+-------+
|  2 | johar |
+----+-------+
1 row in set (0.00 sec)

mysql>

Usando la cláusula LIKE dentro de PHP Script

Puede usar una sintaxis similar a la cláusula WHERE ... LIKE en la función PHP mysqli_query(). Esta función se usa para ejecutar comandos SQL y luego otra función PHPmysqli_fetch_array() se puede utilizar para recuperar todos los datos seleccionados si se utiliza la cláusula WHERE ... LIKE junto con el comando SELECT.

Pero si se usa la cláusula WHERE ... LIKE con el comando DELETE o UPDATE, no se requiere ninguna otra llamada a la función PHP.

Ejemplo

Pruebe el siguiente ejemplo para devolver todos los registros de tutorials_inf tabla cuyo nombre contiene johar -

<?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 LIKE "%johar%"';
   $result = mysqli_query($conn, $sql);
   $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
   
   printf ("%s \n",$row["name"]);
   mysqli_free_result($result);
   mysqli_close($conn);
?>

La salida de muestra debería ser así:

Connected successfully
johar