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