【问题标题】:select last n row from a table in mysql without using order by从mysql中的表中选择最后n行而不使用order by
【发布时间】:2019-12-30 18:14:51
【问题描述】:
select * from employee limit select count(*)-1 from employee,1;

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“select count(*)-1 from employee,1”附近使用正确的语法

【问题讨论】:

  • LIMIT 的值必须是字面量,不能在其中放置表达式。如果你想使用 SELECT 查询作为表达式,它必须在括号内。
  • ... 并且没有 ORDER BY 的 LIMIT 返回随机记录。
  • 如果您允许订购,这是一个可以通过多种方式解决的问题。为什么这里不允许订购?如果不指定顺序,则无法保证选择了哪些记录,那么为什么不直接忽略应用程序中读取的最后一条记录呢?
  • 那你对last的定义是什么?

标签: mysql sql-order-by limit


【解决方案1】:

希望这项工作

select * from your_table except 
select top ((select count(*) from your_table) - how many rows you want)* from your_table

【讨论】:

  • mysql中除了top之外都没有
猜你喜欢
  • 1970-01-01
  • 2012-08-20
  • 2010-10-09
  • 2014-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多