1
当需要排序集合的最后一行时,通常会创建派生表格并重新排序。例如,为了与自动返回表的最后3个元素递增id
:是否可以将LIMIT与子查询结果一起使用?
SELECT * FROM (
SELECT * FROM table ORDER BY id DESC LIMIT 3
) t ORDER BY t.id
由于LIMIT
也有偏移,同样的结果可能是,如果我们知道线的数量来实现(如10)提前与此查询:
SELECT * FROM table ORDER BY id LIMIT 3 OFFSET 7
是否有可能运行一个子查询到count(*)
表和动态使用该号码建立一个LIMIT
?
SELECT * FROM table ORDER BY id LIMIT 3 OFFSET [ select count() -3 ]
不,“LIMIT”参数必须是文字,它们不能是表达式。如果您需要动态计算限制,则必须在存储过程的准备好的查询中执行此操作,或者使用客户端语言执行此操作。 – Barmar
我在这里想的很好,但是你可能可以使用'HAVING'和COUNT()'。尽管如此,我不得不测试这个理论。 –
可能的重复http://stackoverflow.com/questions/41149708/using-as-to-avoid-same-query-mysql/41150070#41150070 –