首页 > 解决方案 > 显示无效语法

问题描述

它是数据库 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

面临此错误的问题 致命错误:未捕获的 PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在 C:\xampp\htdocs\company-directory\home.php:20 中的第 4 行的“u ORDER BY profile_progress”附近使用正确的语法:堆栈跟踪:#0 C: \xampp\htdocs\company-directory\home.php(20): PDOStatement->execute() #1 {main} 在第 20 行的 C:\xampp\htdocs\company-directory\home.php 中抛出

标签: sqlselect

解决方案


不用子查询,可以直接使用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; 

推荐阅读