Aprenda a usar o operador LIKE no MySQL e exibir resultados no PHP

Veja como realizar buscas com LIKE no MySQL e exibir os resultados em uma página PHP.

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() e mysqli_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.

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

Compartilhe este tutorial: Como fazer buscas com LIKE no MySQL e exibir os resultados no PHP?

Compartilhe este tutorial

Continue aprendendo:

Como contar registros em uma tabela MySQL e exibir o resultado no PHP?

Veja como contar registros de uma tabela MySQL e exibir o resultado em uma página PHP.

Tutorial anterior

Como filtrar dados de um formulário antes de inserir no MySQL com PHP?

Veja como validar e filtrar dados de um formulário antes de inseri-los no MySQL para evitar SQL Injection e erros.

Próximo tutorial