[英]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.