gpt4 book ai didi

mysql - mysql where子句中的MAX函数

转载 作者:IT老高 更新时间:2023-10-28 23:41:58 26 4
gpt4 key购买 nike

如何在 mysql 查询的 where 子句中使用 max() 函数,我正在尝试:

 select firstName,Lastname,MAX(id) as max where id=max;

这给了我一个错误:

Unknown column 'max' in 'where clause'

有什么帮助吗?提前致谢。

最佳答案

我们不能在同一 SELECTWHERE 子句中引用聚合函数的结果(例如 MAX() ) .

解决此类问题的规范模式是使用内联 View ,如下所示:

SELECT t.firstName
, t.Lastname
, t.id
FROM mytable t
JOIN ( SELECT MAX(mx.id) AS max_id
FROM mytable mx
) m
ON m.max_id = t.id

这只是获得指定结果的一种方法。还有其他几种方法可以获得相同的结果,其中一些方法的效率可能比其他方法低得多。其他答案证明了这种方法:

 WHERE t.id = (SELECT MAX(id) FROM ... )

有时,最简单的方法是使用带有 LIMIT 的 ORDER BY。 (注意这个语法是 MySQL 特有的)

SELECT t.firstName
, t.Lastname
, t.id
FROM mytable t
ORDER BY t.id DESC
LIMIT 1

请注意,这将只返回一行;因此,如果有多行具有相同的 id 值,则不会返回所有行。 (第一个查询将返回所有具有相同 id 值的行。)

这种方法可以扩展到多行,您可以通过将其更改为 LIMIT 5 来获得具有最高 id 值的五行。

请注意,此方法的性能特别依赖于可用的合适索引(即,id 作为 PRIMARY KEY 或作为另一个索引中的前导列。)合适的索引将提高性能使用所有这些方法进行查询。

关于mysql - mysql where子句中的MAX函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22538287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com