簡體   English   中英

帶有LIMIT的MySQL MIN()和MAX()

[英]MySQL MIN() and MAX() with LIMIT

我試圖從查詢中獲取MIN()和MAX()值,以便可以在PHP函數中使用結果值,但由於涉及到LIMIT,因此似乎無法解決該問題。

SELECT MIN(ID) AS MinID, MAX(ID) AS MaxID 
FROM parts_listing 
WHERE BaseGroup = 0
LIMIT 0,50;

這是分頁函數使用的動態生成的LIMIT,因此在此示例中,應給出MinID = 1和MAXID = 50,但應給出MinID = 1和MinID = 129,這是BaseGroup 0中的總記錄數。使用其他BaseGroup值中的任何一個,它也會給出總值。 如果我將LIMIT的起始記錄更改為LIMIT 10,50,我什么也得不到。

我意識到這里也有類似的問題,但是在這個特定情況下它們沒有幫助。 有任何想法嗎?

當僅剩一行時, 處理MIN / MAX 之后應用LIMIT

您需要將其移動到派生表:

SELECT MIN(ID) AS MinID, MAX(ID) AS MaxID 
FROM
 (
   SELECT ID 
   FROM parts_listing 
   WHERE BaseGroup = 0
   LIMIT 0,50
 ) as dt

您可能也需要一個ORDER BY

LIMIT不限制記錄如何使用mysql計算MIN或MAX函數。 符合WHERE標准的所有記錄均用於計算結果

換句話說,LIMIT對聚合函數沒有任何意義

LIMIT看不到查詢,只看結果集,如果查詢輸出多於一行,limit可以解決該問題

您需要使用WHERE子句來“限制”聚合函數中使用的行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM