文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  解決無匹配列的問題

B.3.4.7 解決無匹配列的問題

如果您有一個使用多個表格但未傳回任何列的複雜查詢,您應該使用以下程序來找出問題所在

  1. 使用 EXPLAIN 測試查詢,以檢查是否可以找到明顯錯誤的地方。請參閱 第 15.8.2 節,「EXPLAIN 陳述式」

  2. 僅選取 WHERE 子句中使用的那些欄位。

  3. 一次從查詢中移除一個表格,直到它傳回某些列。如果表格很大,最好在查詢中使用 LIMIT 10

  4. 針對應該與列匹配的欄位,對最後從查詢中移除的表格發出 SELECT

  5. 如果您正在比較具有小數的數字的 FLOATDOUBLE 欄位,則不能使用等號 (=) 比較。這個問題在大多數電腦語言中都很常見,因為並非所有浮點數值都可以以精確的精度儲存。在某些情況下,將 FLOAT 變更為 DOUBLE 可以解決這個問題。請參閱 第 B.3.4.8 節,「浮點數值問題」

  6. 如果您仍然無法找出問題所在,請建立一個可以使用 mysql test < query.sql 執行的最小測試,以顯示您的問題。您可以使用 mysqldump --quick db_name tbl_name_1 ... tbl_name_n > query.sql 轉儲表格來建立測試檔案。在編輯器中開啟檔案,移除一些插入行(如果有多於證明問題所需的行),並在檔案末尾新增您的 SELECT 陳述式。

    透過執行這些指令驗證測試檔案是否顯示問題

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

    將測試檔案附加到錯誤報告中,您可以使用 第 1.6 節,「如何回報錯誤或問題」中的說明來提交錯誤報告。