MySQL 限制变量

emp*_*ing 10 mysql variables limit

我的语法有错误:

SET @start := 0;
SELECT (ROUND((count(item))/2)) FROM car INTO @until; 

SELECT * FROM car
LIMIT @until OFFSET @start;
Run Code Online (Sandbox Code Playgroud)

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“@until OFFSET @start”附近使用的正确语法

有人可以帮助我吗?
谢谢

kas*_*mir 5

不能在子句中使用用户定义变量 ( @until) LIMIT

一个可能的解决方案(此方案的变体):

SELECT (ROUND((count(item))/2)) FROM car INTO @until;
SELECT * FROM (
  SELECT *, 
         @rownum := @rownum + 1 AS rank
    FROM car, 
         (SELECT @rownum := 0) r
) d WHERE rank < @until;
Run Code Online (Sandbox Code Playgroud)

唯一的缺点是您失去了抵消额,但您可以通过调整WHERE条款来适应这一点。否则,您可以使用存储过程。