Eso pasa porque no estás validando lo que hay en dato, supongo que si tiene solo un caracter te va a traer muchos resultados.
Código PHP:
Ver originalinclude('conexion.php');
// Convendría realizar alguna validación o limpieza adicional
// por ahora solo se quitan espacios en los extremos
$dato = trim($_POST['dato']);
// Verifica que $dato no está vacío
// Aunque lo más recomendable sería verificar la longitud
// Algo como: if(strlen($dato) > 2) para buscar solo si son 3 caracteres o más
if($dato != '') {
// Realiza la búsqueda
$query = "SELECT cm.*, pgc.* FROM company_main cm, parent_group_catalog pgc where cm.parentgroup = pgc.groupID and cm.companyName like '%$dato%'";
// Sería bueno agregar un límite para cargar solo cierta cantidad de registros
$query .= ' LIMIT 100';
// Ejecutas la consulta
}