Spec-Zone.ru › MySQL 9.2

B.3.4.7 Решение проблем с отсутствием соответствий строк

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

  1. Проверьте запрос с помощью EXPLAIN, чтобы найти очевидные ошибки. См. Раздел 15.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. Откройте файл в редакторе, удалите некоторые строки INSERT (если их больше, чем необходимо для демонстрации проблемы) и добавьте ваше SELECT утверждение в конец файла.

    Убедитесь, что тестовый файл демонстрирует проблему, выполнив эти команды:

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

    Прикрепите тестовый файл к отчету об ошибке, который можно подать, следуя инструкциям в Разделе 1.6, «Как сообщать об ошибках или проблемах».

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

Spec-Zone.ru

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