MySQL - cláusula LIKE
Vimos o SQL SELECTcomando para buscar dados da tabela MySQL. Também podemos usar uma cláusula condicional chamada deWHERE cláusula para selecionar os registros necessários.
Uma cláusula WHERE com o sinal 'igual a' (=) funciona bem onde queremos fazer uma correspondência exata. Como se "tutorial_author = 'Sanjay'". Mas pode haver um requisito em que queremos filtrar todos os resultados em que tutorial_author name deve conter "jay". Isso pode ser tratado usandoSQL LIKE Clause junto com a cláusula WHERE.
Se a cláusula SQL LIKE for usada junto com o caractere%, ela funcionará como um metacaractere (*) como no UNIX, ao listar todos os arquivos ou diretórios no prompt de comando. Sem um caractere%, a cláusula LIKE é muito semelhante àequal to assinar junto com a cláusula WHERE.
Sintaxe
O bloco de código a seguir possui uma sintaxe SQL genérica do comando SELECT junto com a cláusula LIKE para buscar dados de uma tabela MySQL.
SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
Você pode especificar qualquer condição usando a cláusula WHERE.
Você pode usar a cláusula LIKE junto com a cláusula WHERE.
Você pode usar a cláusula LIKE no lugar do equals to placa.
Quando LIKE é usado junto com o sinal%, ele funcionará como uma pesquisa de metacaracteres.
Você pode especificar mais de uma condição usando AND ou OR operadores.
Uma cláusula WHERE ... LIKE pode ser usada junto com o comando DELETE ou UPDATE SQL também para especificar uma condição.
Usando a cláusula LIKE no prompt de comando
Isso usará o comando SQL SELECT com a cláusula WHERE ... LIKE para buscar os dados selecionados da tabela MySQL - tutorials_tbl.
Exemplo
O exemplo a seguir retornará todos os registros do tutorials_tbl tabela para a qual o nome do autor termina com 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 a cláusula LIKE dentro do script PHP
Você pode usar uma sintaxe semelhante da cláusula WHERE ... LIKE na função PHP - mysql_query(). Esta função é usada para executar o comando SQL e posteriormente outra função PHP -mysql_fetch_array() pode ser usado para buscar todos os dados selecionados, se a cláusula WHERE ... LIKE for usada junto com o comando SELECT.
Mas se a cláusula WHERE ... LIKE estiver sendo usada com o comando DELETE ou UPDATE, nenhuma outra chamada de função PHP será necessária.
Exemplo
Experimente o exemplo a seguir para retornar todos os registros do tutorials_tbl tabela para a qual o nome do autor contém 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);
?>