如何在MySQL中动态解析LIMIT

  • 本文关键字:LIMIT 动态 MySQL mysql sql
  • 更新时间 :
  • 英文 :


我有查询

SELECT *
LIMIT 3, (6 - 3)

Wchich返回:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6 - 3)' at line 2

我基本上想从第三行中选择6行*,在MSSQL中是WHERE RowNumber BETWEEN 3 and 6,但动态地知道:from:size:from:to参数

在这种情况下使用OFFSET

SELECT name 
FROM your_db 
ORDER BY your_column DESC 
LIMIT 10 OFFSET 10

LIMIT子句可用于约束SELECT语句返回的行数。LIMIT接受一个或两个数字参数,这两个参数都必须是非负整数常量。

基本上,如果你不在存储过程或准备好的语句中,你就不能这样做

  • 在准备好的语句中,LIMIT参数可以使用?占位符标记
  • 在存储的程序中,可以使用指定LIMIT参数整数值例程参数或局部变量

因此,在存储过程中,以下操作将起作用:

declare from_row bigint; 
declare to_row bigint;
SELECT name 
FROM your_db 
ORDER BY your_column DESC 
LIMIT from_row OFFSET (to_row-from_row);

最新更新