将 SELECT 与 OFFSET 结合使用

Agn*_*eer 1 mysql mysql-error-1064

select FIELD
from TABLE
order by FIELD
LIMIT 1
OFFSET (select ceil(count(*)/2) from TABLE);
Run Code Online (Sandbox Code Playgroud)

我收到一个错误。是否可以以这种方式使用第二个选择语句,因为它只返回一个数字。如果不是,为什么?

Ray*_*and 5

您需要使用这个动态 MySQL。

SET @OFFSET = "( SELECT CEIL(COUNT(*) / 2) FROM test )";

SET @SQL = "
 SELECT 
  a
 FROM 
  test
 ORDER BY a
 LIMIT 1
 OFFSET ?
";

PREPARE dynamic FROM @SQL;
EXECUTE dynamic USING @OFFSET;
Run Code Online (Sandbox Code Playgroud)

  • "从测试中选择 CEIL(COUNT(*) / 2)"; 应该是 (SELECT CEIL(COUNT(*) / 2) FROM test); (2认同)