Resolvendo Problemas Com Registros Não Encontrados


If you have a complicated query that has many tables and that doesn't return any rows, you should use the following procedure to find out what is wrong with your query:

  1. Teste a consulta com EXPLAIN e verifique se você pode encontrar alguma coisa que está errada. Leia "Sintaxe de EXPLAIN (Obter informações sobre uma SELECT)".
  2. Selcione apenas aqueles campos que são usados na cláusula WHERE.
  3. Remova uma tabela por vez da consulta até que ela retorne alguns registros. Se as tabelas são grandes, é uma boa idéia usar LIMIT 10 com a consulta.
  4. Faça um SELECT da coluna encontrou um registro com a tabela que foi removido por última da consulta.
  5. Se você estiver comparando colunas FLOAT ou DOUBLE com números que tenham decimais, você não pode usar '='. Este problema é comum na maioria das linguagens de computadores porque valores de ponto-flutuante não são valores exatos. Na maioria dos casos, alterar o FLOAT por DOUBLE corrigirá isto. Leia Seção A.5.7, "Problemas com Comparação de Ponto Flutuante".
  6. Se você ainda não pode imaginar o que está errado, crie um teste mínimo que possa ser executado com mysql test < query.sql e possa mostrar seus problemas. Você pode criar um arquivo de teste com mysqldump --quick banco_de_dados tabela > query.sql. Abra o arquivo em um editor, remova algumas linhas inseridas (se houver muitas) e adicione sua instrução select no fim do arquivo.

    Teste se você ainda está tendo problemas fazendo:

    shell> mysqladmin create test2
    shell> mysql test2 < query.sql
    

    Envie o arquivo de teste usando mysqlbug para lista de email gerais do MariaDB. Leia "As Listas de Discussão do MariaDB".

Retornar