phpMyAdmin объяснение ошибок

0

В версии 4.5.5.1 phpMyAdmin я запускаю следующий код MySQL;

SELECT Date, DOW, Week, Year, logdate, Month, monum, netID, Logins, 
       creds, newb, netCnt, TOD, netCnt, activity
  FROM (SELECT logdate
              ,activity
              ,DATE( logdate )                      AS Date
              ,DAYOFWEEK( logdate )         AS DOW
              ,WEEK( logdate,0 )              AS Week
              ,YEAR( logdate )              AS Year
              ,DATE_FORMAT( logdate, '%M' )         AS Month
              ,DATE_FORMAT( logdate, '%m' )     AS monum
              ,CONVERT( netID,UNSIGNED INTEGER )    AS netID
              ,COUNT( callsign )                    AS Logins
              ,COUNT( IF(creds <> '',1,NULL) )  AS creds
              ,COUNT( IF(comments LIKE '%first log in%',1,NULL) ) AS newb
              ,count( DISTINCT netID )      AS netCnt
              ,SUM(  DISTINCT netID)            AS allCnt
              ,SEC_TO_TIME( SUM(timeonduty) )       AS TOD
         FROM NetLog
        WHERE netID <> 0 
          AND activity NOT LIKE '%TEST%'
          AND netcall LIKE '%W0KCN%'
          AND substr(logdate,1,4) = 2017
    GROUP BY Month, netID WITH ROLLUP ) AS t 
    ORDER BY t.logdate , logins

Он работает очень хорошо и возвращает все, что мне нужно, но... Я получаю три ошибки в строке 3 в 'FROM (SELECT logdate'

Изображение 174551

Я также получаю пять ошибок в строке 23 "GROUP BY Month, netID WITH ROLLUP) AS t '...

Изображение 174551

Что это значит, и я должен их решить, и, конечно, как я их разрешу?

  • 3
    В этом SQL нет синтаксических ошибок. Я только что протестировал его в своем локальном экземпляре MySQL 5.6, и он прошел синтаксический анализ без ошибок (затем он сделал ошибку, потому что у меня нет таблицы Netlog, но синтаксический анализ идет первым). Я полагаю, что phpMyAdmin может иметь неполное понимание продвинутого SQL, но это выглядит довольно неубедительно. Есть ли способ отключить проверку синтаксиса?
  • 0
    phpMyAdmin не такой надежный инструмент, как MySQL Workbench, поэтому, если у вас есть возможность использовать Workbench, придерживайтесь этого.
Показать ещё 2 комментария
Теги:
phpmyadmin

1 ответ

2
Лучший ответ

Вы заявляете:

В версии 4.5.5.1

Текущая версия PHPMyAdmin - 4.7.7, вы можете получить ее здесь.

Я выполнил ваш запрос в моей версии 4.7.3, и это не показывает эти ошибки при запуске.

Проблема в том, что версия 4.5.5 была выпущена в 2015 году, и поэтому она довольно старая... Исправлены ошибки, улучшены коды, PHPMyAdmin всегда немного отставал от работы с расширенной синтаксической проверкой SQL.

Я бы повторил комментарий, указанный тадманом:

phpMyAdmin не такой надежный инструмент, как MySQL Workbench, поэтому, если у вас есть возможность использовать Workbench

Ещё вопросы

Сообщество Overcoder
Наверх
Меню