Spec-Zone.ru › MySQL 5.7

B.3.4.7 Решение проблем с отсутствием совпадающих строк

Если у вас есть сложное запросы, использующий много таблиц, но возвращающий нулевое количество строк, используйте следующую процедуру, чтобы выяснить, в чём проблема:

  1. Протестируйте запрос с помощью EXPLAIN, чтобы проверить, можете ли вы найти очевидные ошибки. См. Раздел 13.8.2, «Запрос EXPLAIN».

  2. Выберите только те столбцы, которые используются в условии WHERE.

  3. Поочерёдно удаляйте таблицы из запроса до тех пор, пока он не вернёт какие-либо строки. Если таблицы большие, рекомендуется использовать LIMIT 10 с запросом.

  4. Выполните SELECT для столбца, который должен был сопоставиться со строкой в таблице, которая была последней удалена из запроса.

  5. Если вы сравниваете FLOAT или DOUBLE столбцы с числами, имеющими десятичные дроби, вы не можете использовать сравнения с равенством (=). Эта проблема характерна для большинства компьютерных языков, так как не все значения с плавающей точкой могут быть сохранены с точной точностью. В некоторых случаях, изменение 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.5, «Как сообщать об ошибках или проблемах».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/no-matching-rows.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API