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


MySQL 8.4 參考手冊  /  ...  /  解決沒有符合資料列的問題

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 節,〈如何報告錯誤或問題〉中的指示提交錯誤報告。