如果我想从整个表中选择最小值和最大值,我可以使用:
SELECT min(price) as min_price, max(price) as max_price FROM `prices`
但是如何从表的一部分中选择最小值和最大值呢?
例如,我的表中有 30 行。我想从前十行中选择最小值和最大值,然后从后十行中选择最小值和最大值,然后形成最后 10 行。
我尝试过类似的东西
SELECT min(price) as min_price, max(price) as max_price FROM `prices` LIMIT 0,10
但这没有用。
如何用最少的查询来解决这个问题?
SELECT MIN(PRICE) AS MinPrice, MAX(PRICE) AS MaxPrice FROM (SELECT PRICE FROM PRICES LIMIT 10) tmp;
此外,MySQL 有一个很酷的功能,可以让您返回任意范围的行(例如返回行 10-20)。这对于显示记录页面非常方便:
SELECT column FROM table
LIMIT 10 OFFSET 20
上述查询将返回第 20-30 行。
简而言之,要在查询中返回 20 到 30 行,您可以使用:
SELECT MIN(PRICE) AS MinPrice, MAX(PRICE) AS MaxPrice
FROM (SELECT PRICE FROM PRICES LIMIT 10 OFFSET 20);
您需要更改偏移值以指定范围的起点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)