繁体   English   中英

使用 SELECT 查询将值传递给 LIMIT function

[英]Passing value to LIMIT function using SELECT query

有一个名为 STATION 的表。

我想显示表格的行。

MYSQL查询

SELECT *
FROM STATION
LIMIT (SELECT COUNT(ID) FROM STATION)/2

我尝试执行这样的查询,但出现语法错误。

这个查询有什么问题?

如何执行此查询?

一种方法是使用 window 函数:

select t.*
from (select t.*,
             ntile(2) over (order by id) as tile
      from t
     ) t
where tile = 1;

我从来没有见过需要查询正好一半的表。 如果您出于好奇而问这个问题,那是公平的,但如果您确实需要尝试实现类似的东西,请重新审视设计。

谈到你的问题,你可以做两件事:

  1. 实现一个存储过程并查询计数并存储在一个变量中,然后将其传递给实际的 SELECT 查询 LIMIT 子句。

  2. 从您的客户端代码触发 2 个不同的查询 - 1 个用于计数和计算一半(非分数),然后将其传递给下一个 select 查询的限制子句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM