【问题标题】:How to use subquery to define Mysql SELECT LIMIT offset?如何使用子查询来定义 Mysql SELECT LIMIT 偏移量?
【发布时间】:2011-11-18 11:31:30
【问题描述】:

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

但是在执行这个查询时,我总是以 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;

附言。我投了它,所以我可以确保它是一个整数。

【问题讨论】:

标签: mysql sql subquery limit


【解决方案1】:

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

这个查询到底想达到什么目的?这个查询对我没有任何意义...

【讨论】:

    【解决方案2】:

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

    基本上,如果您不在存储过程或准备好的语句中,则无法这样做。

    如果您有一个存储过程,只需将“内部”选择的值分配给一个变量,然后在实际语句中使用它。

    如果您有准备好的语句,请使用“limit ?, ?”并设置调用中的值。

    【讨论】:

      猜你喜欢
      • 2010-11-17
      • 2012-05-30
      • 2013-03-17
      • 2014-02-21
      • 2015-10-18
      • 1970-01-01
      • 2014-07-26
      • 2011-05-27
      相关资源
      最近更新 更多