SQL入门:ORDER BY、DESC和LIMIT查询语法正确性咨询
你的SQL语句问题及修正方案
你的这段SQL存在几个明显语法错误,下面给你拆解问题并给出符合需求的修正方案:
原语句的错误点
SELECT部分:*和列名之间缺少逗号,SQL中多个字段必须用逗号分隔;如果想获取表中所有列,仅写*即可,无需额外列字段名;如果只需要指定列,就不用写*,直接列出目标列。ORDER BY部分:必须明确指定排序的列名,DESC是降序排序的方向,要跟在列名后面,不能单独写DESC。- 占位符问题:
Table name和Column name是占位符,实际使用时要替换成你的真实表名和排序用的列名。
符合需求的修正语句
情况1:获取表中所有列,按指定列降序取前200条
SELECT * FROM 你的真实表名 ORDER BY 排序用的列名 DESC LIMIT 200
情况2:仅获取指定的某几列,按指定列降序取前200条
SELECT 目标列名1, 目标列名2 FROM 你的真实表名 ORDER BY 排序用的列名 DESC LIMIT 200
另外你提到“保留所有行顺序”,这里需要注意:ORDER BY会改变原表的行顺序,如果你想保留原表顺序同时取前200条,那不需要加ORDER BY;但结合你“从指定列获取排序后的前200条”的需求,上面的语句就完全符合要求。
内容的提问来源于stack exchange,提问作者stax6557
相关产品推荐
相关产品推荐

