# B.3.4.7 解决没有匹配行的问题
如果您有一个使用许多表但不返回任何行的复杂查询,您应该使用以下过程来找出问题所在:
测试查询
解释
检查你是否能找到明显错误的东西。看第 13.8.2 节,“解释声明”.仅选择在
在哪里
条款。从查询中一次删除一个表,直到它返回一些行。如果表很大,最好使用
限制 10
与查询。发出一个
选择
对于应该与最后从查询中删除的表匹配的行的列。如果你在比较
漂浮
要么双倍的
具有小数的数字的列,您不能使用相等(=
) 比较。这个问题在大多数计算机语言中很常见,因为并非所有浮点值都可以精确存储。在某些情况下,更改漂浮
到一个双倍的
解决这个问题。看第 B.3.4.8 节,“浮点值问题”.如果您仍然无法找出问题所在,请创建一个可以运行的最小测试
mysql测试<查询.sql
这表明你的问题。您可以通过转储表来创建一个测试文件mysqldump --快速数据库_姓名tbl_name_1
...tbl_name_n
>查询.sql**.在编辑器中打开文件,删除一些插入行(如果有超过演示问题所需的行),然后添加您的选择
文件末尾的声明。通过执行以下命令验证测试文件是否演示了问题:
$> mysqladmin create test2 $> mysql test2 < query.sql
将测试文件附加到错误报告中,您可以使用中的说明进行归档第 1.6 节,“如何报告错误或问题”.