[英]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;
我从来没有见过需要查询正好一半的表。 如果您出于好奇而问这个问题,那是公平的,但如果您确实需要尝试实现类似的东西,请重新审视设计。
谈到你的问题,你可以做两件事:
实现一个存储过程并查询计数并存储在一个变量中,然后将其传递给实际的 SELECT 查询 LIMIT 子句。
从您的客户端代码触发 2 个不同的查询 - 1 个用于计数和计算一半(非分数),然后将其传递给下一个 select 查询的限制子句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.