Shi*_*ang 6 mysql sql mysql-5.7 mysql-8.0
声明就像 SELECT * FROM db.table group by id desc;
会引发这样的错误
15:02:24 SELECT * FROM db.table group by id desc LIMIT 0, 10 错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在第 1 行 0.00014 秒附近的“desc LIMIT 0, 10”附近使用的正确语法
在 MySQL 8.0.13 上 Ubuntu 18.04 桌面 64 位
这在 Windows 或 CentOS 或 Ubuntu 中的 MySQL 5.7 上会很好。
我基本上知道,select 语句就像。
SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
Run Code Online (Sandbox Code Playgroud)
那么这个 5.7 的问题是不发出错误吗?
或者在 SQL 标准上更复杂的东西?
小智 6
我有同样的问题,所以对于 MySQL 8,我使用了这样的 sql:
SELECT * FROM db.table
group by id
order by id desc
Run Code Online (Sandbox Code Playgroud)
摘自@P.Salmon 对这个问题的评论。
如果您在手册http://dev.mysql.com/doc/refman/5.7/en/select.html中查找 select 语句, 您将看到最多 5.7
asc|desc是该语句的可选修饰符,group by这些修饰符从8.0.并且如果您查看升级文档 https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-sql-changes 此弃用已记录在案。
鉴于这种情况,@Linda Li 的回答可能是一个不错的选择。