【问题标题】:How to select whole rows choosing minimum or maximum values from columns - MySql如何选择整行从列中选择最小值或最大值 - MySql
【发布时间】:2013-04-03 23:05:59
【问题描述】:

我想选择具有唯一“created_by”列的行并选择具有最小“距离”的行。这是我的表格数据:

id  title           created_by  last_used           distance
668 Lorem Ipsum 1   981         2012-00-00 00:00:00     12
2   Lorem Ipsum 2   981         2012-00-00 00:00:00     20
710 Lorem Ipsum 3   120         2013-01-01 00:00:00     1
769 Lorem Ipsum 4   981         2012-00-00 00:00:00     4

所以,我想得到以下行:

id  title           created_by  last_used           distance
710 Lorem Ipsum 3   120         2013-01-01 00:00:00     1
769 Lorem Ipsum 4   981         2012-00-00 00:00:00     4

如何使用 SELECT 语句实现这一点?

【问题讨论】:

  • 您打算如何处理具有最小距离的两行?
  • 这类问题很常见。例如:12345
  • 使用示例中所述的 JOINS 我能够得到结果,但性能不佳。

标签: mysql select


【解决方案1】:

我能够在不影响此查询的性能的情况下获得结果(避免 JOINS):

SELECT id, title, created_by, last_used, MIN(distance) 
FROM MyTable GROUP BY created_by;

【讨论】:

  • 只要您不介意idtitlelast_used 的值不一定与MIN(distance) 位于同一行...这就是连接的原因是必要的。
猜你喜欢
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-31
  • 2017-05-17
  • 2017-12-07
  • 2011-12-14
  • 2010-10-21
相关资源
最近更新 更多