You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL查询问题:执行MIN(Price)未返回对应最低价产品名,如何解决?

解决MySQL中MIN(Price)与对应产品名称不匹配的问题

你当前的查询 SELECT MIN(Price), ProductName FROM Products; 返回任意产品名称的原因是:当使用聚合函数(如MIN())但未对非聚合列(ProductName)做分组或关联匹配时,MySQL会随机选取表中某一行的ProductName值返回,而非对应最低价格的那一行。

以下是几种可行的调整方案:

  • 子查询匹配最低价格
    先通过子查询获取最低价格,再筛选出价格等于该值的产品,能返回所有价格同为最低的产品:

    SELECT ProductName, Price
    FROM Products
    WHERE Price = (SELECT MIN(Price) FROM Products);
    
  • 排序后取首行
    通过ORDER BY按价格升序排序,再用LIMIT取第一行,适合只需要一个最低价产品的场景(若有多个最低价产品,仅返回其中一个):

    SELECT ProductName, Price
    FROM Products
    ORDER BY Price ASC
    LIMIT 1;
    
  • 窗口函数排名(MySQL 8.0+)
    利用RANK()窗口函数给价格排名,筛选出排名为1的产品,同样能返回所有最低价产品,适合较高版本的MySQL:

    SELECT ProductName, Price
    FROM (
        SELECT 
            ProductName, 
            Price,
            RANK() OVER (ORDER BY Price ASC) AS price_rank
        FROM Products
    ) AS ranked_products
    WHERE price_rank = 1;
    

内容的提问来源于stack exchange,提问作者grafeno30

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 19:40:41