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:
- Teste a consulta com
EXPLAINe verifique se você pode encontrar alguma coisa que está errada. Leia "Sintaxe deEXPLAIN(Obter informações sobre umaSELECT)". - Selcione apenas aqueles campos que são usados na cláusula
WHERE. - 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 10com a consulta. - Faça um
SELECTda coluna encontrou um registro com a tabela que foi removido por última da consulta. - Se você estiver comparando colunas
FLOATouDOUBLEcom 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 oFLOATporDOUBLEcorrigirá isto. Leia Seção A.5.7, "Problemas com Comparação de Ponto Flutuante". - Se você ainda não pode imaginar o que está errado, crie um teste mínimo que possa ser executado com
mysql test < query.sqle possa mostrar seus problemas. Você pode criar um arquivo de teste commysqldump --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 test2shell>mysql test2 < query.sqlEnvie o arquivo de teste usando
mysqlbugpara lista de email gerais do MariaDB. Leia "As Listas de Discussão do MariaDB".