Верните самый популярный день для бронирования - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь написать запрос MySQL, который возвращает самый популярный день недели для бронирования.

Я не уверен в своей проблеме здесь.MySQL возвратил ошибку, говоря, что есть синтаксическая ошибка, но из-за сложности запроса (для меня в любом случае) я не могу увидеть причину.

Ошибка гласит:

"# 1064 - у вас ошибка в синтаксисе SQL; обратитесь к руководству, соответствующему версии вашего сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с ''tbl_booking 'GROUP BY DATE_FORMAT (' tbl_booking.booking_date ','% W ') ORDER BY' в строке 2 "

    SELECT DATE_FORMAT('tbl_booking.booking_date', '%W'), COUNT(DATE_FORMAT('tbl_booking.booking_date', '%W')) AS 'mostpopularday'
FROM 'tbl_booking'
GROUP BY DATE_FORMAT('tbl_booking.booking_date', '%W')
ORDER BY 'mostpopularday' DESC
LIMIT 1

Ранее я использовал функцию DATE_FORMAT (), но никогда для сортировкиданные.Я совершенно новичок в MySQL / PhpMyAdmin, поэтому любая помощь очень ценится.Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Ваши ' разделители вокруг таблицы и имена столбцов неверны.

Для достижения наилучших результатов вообще избавьтесь от разделителей, как это.

 SELECT DATE_FORMAT(tbl_booking.booking_date, '%W'), 
        COUNT(DATE_FORMAT(tbl_booking.booking_date, '%W')) AS mostpopularday
   FROM tbl_booking
  GROUP BY DATE_FORMAT(tbl_booking.booking_date, '%W')
  ORDER BY mostpopularday DESC
  LIMIT 1

Если вы должны их оставить, они должны выглядеть следующим образом.Обратите внимание на галочки: `.

   SELECT DATE_FORMAT(`tbl_booking`.`booking_date`, '%W'), 
          COUNT(DATE_FORMAT(`tbl_booking`.`booking_date`, '%W')) AS mostpopularday
     FROM `tbl_booking`
    GROUP BY DATE_FORMAT(`tbl_booking`.`booking_date`, '%W')
    ORDER BY mostpopularday DESC
    LIMIT 1
0 голосов
/ 15 февраля 2019

ваш запрос выглядит нормально, но у вас есть синтаксические ошибки.Вы не должны использовать ' для имен столбцов и таблиц.В mysql вы можете использовать <strong>`</strong> для цитирования имен таблиц и столбцов

SELECT 
  DATE_FORMAT(tbl_booking.booking_date, '%W'), 
  COUNT(DATE_FORMAT(tbl_booking.booking_date, '%W')) AS mostpopularday
FROM tbl_booking
GROUP BY DATE_FORMAT(tbl_booking.booking_date, '%W')
ORDER BY mostpopularday DESC
LIMIT 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...