如何使用子查询来定义Mysql SELECT LIMIT偏移量?

时间:2011-11-18 11:31:30

标签: mysql sql subquery limit

我一直在尝试“动态”定义查询的偏移量。

但是在执行此查询时,我总是以You have an error in your SQL syntax;

结束

当我用一个数字重新编写子查询时,它确实可以正常工作。在具有这种形状的查询中是否有问题?

SELECT LengthOfStay
FROM table1
LIMIT (SELECT CAST(COUNT(DISTINCT(LengthOfStay)) / 2 AS SIGNED) FROM table1 t1), 2;

聚苯乙烯。我投了它,所以我可以确保它是一个整数。

2 个答案:

答案 0 :(得分:2)

您不能将子查询用作LIMIT参数。限制参数应为INTEGER。你的子查询返回,好吧......基本上是一个表。

无论如何,这个查询试图实现什么?这个查询对我没有任何意义......

答案 1 :(得分:0)

正如@michal指出答案在How to make limit offset dynamic using only (My)SQL

基本上,如果您不在存储过程或准备好的声明中,则无法执行此操作。

如果你有一个存储过程,只需为你的"内部"的值赋值变量。选择并在真实陈述中使用它。

如果您有准备好的声明,请使用"限制?,?"并设置通话中的值。