MySQL 9.0 發行說明
如果您有一個使用多個表格但未傳回任何列的複雜查詢,您應該使用以下程序來找出問題所在
使用
EXPLAIN
測試查詢,以檢查是否可以找到明顯錯誤的地方。請參閱 第 15.8.2 節,「EXPLAIN 陳述式」。僅選取
WHERE
子句中使用的那些欄位。一次從查詢中移除一個表格,直到它傳回某些列。如果表格很大,最好在查詢中使用
LIMIT 10
。針對應該與列匹配的欄位,對最後從查詢中移除的表格發出
SELECT
。如果您正在比較具有小數的數字的
FLOAT
或DOUBLE
欄位,則不能使用等號 (=
) 比較。這個問題在大多數電腦語言中都很常見,因為並非所有浮點數值都可以以精確的精度儲存。在某些情況下,將FLOAT
變更為DOUBLE
可以解決這個問題。請參閱 第 B.3.4.8 節,「浮點數值問題」。如果您仍然無法找出問題所在,請建立一個可以使用
mysql test < query.sql
執行的最小測試,以顯示您的問題。您可以使用 mysqldump --quick db_nametbl_name_1
...tbl_name_n
> query.sql 轉儲表格來建立測試檔案。在編輯器中開啟檔案,移除一些插入行(如果有多於證明問題所需的行),並在檔案末尾新增您的SELECT
陳述式。透過執行這些指令驗證測試檔案是否顯示問題
$> mysqladmin create test2 $> mysql test2 < query.sql
將測試檔案附加到錯誤報告中,您可以使用 第 1.6 節,「如何回報錯誤或問題」中的說明來提交錯誤報告。