簡體   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