回答

收藏

从MySQL在表的一部分中,选择最小值和最大值

技术问答 技术问答 226 人阅读 | 0 人回复 | 2023-09-14

若要从整个表中选择最小值和最大值,则可采用以下方法:
( B! \1 x& Q0 n" n5 O$ [1 TSELECT min(price) as min_price,max(price) as max_price FROM `prices`但是,如何只从表的一部分中选择最小值和最大值呢?例如,我在一张桌子上有30行。我想从前十行中选择最小值和最大值,然后从后十行中选择,然后形成最后10行。
$ T. T0 S4 j) W4 N% d& {# ~我试过类似的东西$ l- C" ?6 L+ x0 l# c! M
SELECT min(price) as min_price,max(price) as max_price FROM `prices` LIMIT 0,10但是没用。/ F) ]( I2 \3 [# V: |& u: r
如何用最少的查询来解决这个问题?
$ G, m/ R4 p2 E( B4 ~/ K- L                                                                2 J1 x* m2 e+ q' B0 S
    解决方案:                                                               
" V- I, N# ?2 n# z                                                                SELECT MIN(PRICE) AS MinPrice,MAX(PRICE) AS MaxPrice FROM (SELECT PRICE FROM PRICES LIMIT 10) tmp;此外,MySQL它有一个很酷的功能,可以让你回到任何范围(例如,回到10-20行)。显示记录页面非常方便:
5 [& ^) |; C/ \+ z0 ESELECT column FROM tableLIMIT 10 OFFSET 20以上查询将返回20-30行。
6 q0 h4 z- m+ u! Q% O1 ], q' A- x简而言之,在查询时返回20至30行,请使用:1 @/ O5 a1 |4 O
SELECT MIN(PRICE) AS MinPrice,MAX(PRICE) AS MaxPrice FROM (SELECT PRICE FROM PRICES LIMIT 10 OFFSET 20);在指定范围内,您需要更改偏移值的起点。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则