MySQL - Cláusula LIKE
Hemos visto el SQL SELECTcomando para obtener datos de la tabla MySQL. También podemos usar una cláusula condicional llamada comoWHERE cláusula para seleccionar los registros requeridos.
Una cláusula WHERE con el signo 'igual a' (=) funciona bien donde queremos hacer una coincidencia exacta. Como si "tutorial_author = 'Sanjay'". Pero puede haber un requisito en el que queramos filtrar todos los resultados en los que el nombre tutorial_author debe contener "jay". Esto se puede manejar usandoSQL LIKE Clause junto con la cláusula WHERE.
Si se usa la cláusula SQL LIKE junto con el carácter%, entonces funcionará como un metacarácter (*) como 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 a laequal to firmar junto con la cláusula WHERE.
Sintaxis
El siguiente bloque de código tiene una sintaxis SQL genérica del comando SELECT junto con la cláusula LIKE para obtener datos de una tabla MySQL.
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 utilizar la cláusula LIKE junto con la cláusula WHERE.
Puede utilizar la cláusula LIKE en lugar de la equals to firmar.
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 MySQL - tutorials_tbl.
Ejemplo
El siguiente ejemplo devolverá todos los registros del tutorials_tbl tabla cuyo nombre del autor termina con jay -
[email protected]# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl
-> WHERE tutorial_author LIKE '%jay';
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
| 3 | JAVA Tutorial | Sanjay | 2007-05-21 |
+-------------+----------------+-----------------+-----------------+
1 rows in set (0.01 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 - mysql_query(). Esta función se usa para ejecutar el comando SQL y luego otra función PHP -mysql_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 la cláusula WHERE ... LIKE se está usando con el comando DELETE o UPDATE, entonces no se requiere más llamada a la función PHP.
Ejemplo
Pruebe el siguiente ejemplo para devolver todos los registros del tutorials_tbl tabla para la que contiene el nombre del autor jay -
<?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 LIKE "%jay%"';
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);
?>