Отображается неверный синтаксис - PullRequest
1 голос
/ 09 июля 2020

это столбец базы данных компаний в базе данных company_directory

SELECT a.company_name FROM 
         (SELECT companies.company_name 
        FROM companies WHERE  companies.profile_progress 
        BETWEEN 80 AND 100) a ORDER BY  RAND() DESC LIMIT 9 u ORDER BY profile_progress

сталкивается с проблемой с этой ошибкой. Неустранимая ошибка: Uncaught PDOException: SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с 'u ORDER BY profile_progress' в строке 4 в C: \ xampp \ htdocs \ company-directory \ home. php: 20 Трассировка стека: # 0 C: \ xampp \ htdocs \ company-directory \ home. php (20): PDOStatement-> execute () # 1 {main} вставлено в C: \ xampp \ htdocs \ company-directory \ домой. php на линии 20

1 Ответ

1 голос
/ 09 июля 2020

Нет необходимости использовать подзапрос, вы можете напрямую использовать предложение ORDER BY, а также не уверены, с какой целью вы используете функцию RAND() в предложении ORDER BY, это функция, которая генерирует случайные числа, и есть нет смысла сортировать с помощью функции. Вы можете отсортировать по соответствующему столбцу и получить результат.

SELECT companies.company_name 
FROM companies WHERE  companies.profile_progress 
BETWEEN 80 AND 100 ORDER BY profile_progress LIMIT 9; 
...