(mysql.info.gz) No matching rows
Info Catalog
(mysql.info.gz) Deleting from related tables
(mysql.info.gz) Query Issues
(mysql.info.gz) Problems with float
A.5.7 Solving Problems with No Matching Rows
--------------------------------------------
If you have a complicated query that uses many tables but that doesn't
return any rows, you should use the following procedure to find out what
is wrong:
1. Test the query with `EXPLAIN' to check whether you can find
something that is obviously wrong. `EXPLAIN' EXPLAIN.
2. Select only those columns that are used in the `WHERE' clause.
3. Remove one table at a time from the query until it returns some
rows. If the tables are large, it's a good idea to use `LIMIT 10'
with the query.
4. Issue a `SELECT' for the column that should have matched a row
against the table that was last removed from the query.
5. If you are comparing `FLOAT' or `DOUBLE' columns with numbers that
have decimals, you can't use equality (`=') comparisons. This
problem is common in most computer languages because not all
floating-point values can be stored with exact precision. In some
cases, changing the `FLOAT' to a `DOUBLE' will fix this.
Problems with float.
6. If you still can't figure out what's wrong, create a minimal test
that can be run with `mysql test < query.sql' that shows your
problems. You can create a test file by dumping the tables with
`mysqldump --quick db_name TBL_NAME_1 ... TBL_NAME_N > query.sql'.
Open the file in an editor, remove some insert lines (if there are
more than needed to demonstrate the problem), and add your
`SELECT' statement at the end of the file.
Verify that the test file demonstrates the problem by executing
these commands:
shell> mysqladmin create test2
shell> mysql test2 < query.sql
Post the test file using `mysqlbug' to the general MySQL mailing
list. Mailing-list.
Info Catalog
(mysql.info.gz) Deleting from related tables
(mysql.info.gz) Query Issues
(mysql.info.gz) Problems with float
automatically generated byinfo2html