我正在编写一个存储过程,其中我有一个名为 my_size 的输入参数,它是一个 INTEGER。我希望能够在 SELECT
语句的 LIMIT
子句中使用它。显然这不受支持,有没有办法解决这个问题?
# I want something like:
SELECT * FROM some_table LIMIT my_size;
# Instead of hardcoding a permanent limit:
SELECT * FROM some_table LIMIT 100;
最佳答案
对于那些不能使用 MySQL 5.5.6+ 并且不想编写存储过程的人,还有另一种变体。我们可以在带有 ROWNUM 的子选择上添加 where 子句。
SET @limit = 10;
SELECT * FROM (
SELECT instances.*,
@rownum := @rownum + 1 AS rank
FROM instances,
(SELECT @rownum := 0) r
) d WHERE rank < @limit;
关于mysql - 在 MySQL 的 LIMIT 子句中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40620826/