Como fazer buscas com LIKE no MySQL e exibir os resultados no PHP?
O operador LIKE no MySQL permite realizar buscas flexíveis em colunas de texto, retornando resultados que contenham um determinado padrão. É útil para pesquisas parciais ou filtros dinâmicos em aplicações web.
Exemplo de Busca com LIKE usando MySQLi (Procedural)
<?php
$conexao = mysqli_connect("localhost", "usuario", "senha", "meu_banco");
if (!$conexao) {
die("Erro na conexão: " . mysqli_connect_error());
}
$termo = '%'.$_GET['pesquisa'].'%';
$sql = "SELECT * FROM usuarios WHERE nome LIKE ?";
$stmt = mysqli_prepare($conexao, $sql);
mysqli_stmt_bind_param($stmt, "s", $termo);
mysqli_stmt_execute($stmt);
$resultado = mysqli_stmt_get_result($stmt);
echo "<ul>";
while ($linha = mysqli_fetch_assoc($resultado)) {
echo "<li>" . $linha["nome"] . " - " . $linha["email"] . "</li>";
}
echo "</ul>";
?>
Neste código:
- O
LIKE
é usado para buscar nomes que contenham o termo digitado pelo usuário. - O
%
indica que qualquer caractere pode vir antes ou depois do termo pesquisado. mysqli_prepare()
emysqli_stmt_bind_param()
evitam SQL Injection.
Exemplo de Busca com LIKE usando PDO
<?php
$conexao = new PDO("mysql:host=localhost;dbname=meu_banco", "usuario", "senha");
$sql = "SELECT * FROM usuarios WHERE nome LIKE :termo";
$stmt = $conexao->prepare($sql);
$termo = '%'.$_GET['pesquisa'].'%';
$stmt->bindParam(':termo', $termo);
$stmt->execute();
echo "<ul>";
while ($linha = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "<li>" . $linha["nome"] . " - " . $linha["email"] . "</li>";
}
echo "</ul>";
?>
Aqui, bindParam(':termo', $termo)
protege contra SQL Injection enquanto permite buscas flexíveis.
Por que usar LIKE no MySQL para buscas flexíveis?
O uso do operador LIKE no MySQL é essencial para criar sistemas de busca flexíveis. Em aplicações web, permite que os usuários encontrem rapidamente informações sem precisar digitar o termo exato. A combinação do LIKE com prepared statements garante segurança e performance, evitando consultas ineficientes e prevenindo SQL Injection.
Algumas aplicações:
- Criação de sistemas de busca interna
- Filtragem dinâmica de dados em tabelas
- Pesquisa de produtos em lojas virtuais
- Autocompletar em formulários de pesquisa
Dicas para quem está começando
- Use
%termo%
para buscar qualquer ocorrência do termo. - Prefira prepared statements para evitar SQL Injection.
- Otimize colunas pesquisáveis com índices FULLTEXT quando possível.
- Evite o uso excessivo de LIKE em tabelas muito grandes sem indexação.
- Teste diferentes formatos de LIKE (
termo%
,%termo%
,%termo
) dependendo do tipo de busca.
Contribuições de Daniel Moreira