Ошибка 2006 - MySQL

Узнай цену своей работы

Формулировка задачи:

Помогите, пожалуйста!!! Лет 5 этот селект работал, вчера перестал
SELECT * FROM `log` WHERE id IN (SELECT id FROM log AS b WHERE (SELECT COUNT(*) FROM log AS c WHERE c.id >= b.id) <= 20) ORDER BY `crDate`,`crTime`
Теперь начал давать ошибку
SELECT * FROM `log` WHERE id in (SELECT id FROM log AS b WHERE (SELECT COUNT(*) FROM log AS c WHERE c.id >= b.id) <= 20) order by `crDate`,`crTime` LIMIT 0, 25 MySQL said: Documentation #2006 - MySQL server has gone away
Не пойму, в чём дело.
SELECT * FROM `log`
работает, но
SELECT id FROM log AS b WHERE (SELECT COUNT(*) FROM log AS c WHERE c.id >= b.id) <= 20
тоже дает ошибку 2006. Таблица целая. Есть экспорт из нее вчерашний, еще до ошибки. Заранее спасибо за помощь!!!!!!!!

Решение задачи: «Ошибка 2006»

textual
Листинг программы
SELECT * FROM log WHERE Id >= (SELECT MAX(Id) FROM orders) - 20 ORDER BY crDate, crTime

Объяснение кода листинга программы

В представленном коде выполняется запрос на выборку данных из таблицы log, при условии, что значение столбца Id больше или равно максимальному значению столбца Id из таблицы orders, уменьшенному на 20. Запрос также сортирует результаты по столбцам crDate и crTime. Вот список элементов кода с их названиями и значениями:

  1. SELECT * FROM log - выбираем все столбцы из таблицы log
  2. WHERE Id >= (SELECT MAX(Id) FROM orders) - 20 - устанавливаем условие для выборки, где значение столбца Id больше или равно максимальному значению столбца Id из таблицы orders, уменьшенному на 20
  3. ORDER BY crDate, crTime - сортируем результаты по столбцам crDate и crTime

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5