id | field_1 | field_2
1 | a | 1
2 | b | 1
SELECT id, field_1 FROM table GROUP BY field_2
这将得到id = 1的行,我如何获得具有最大id的行? (我想获得field_1 = b)。这是实现这个最简单的方法吗?当分组sql时选择行
感谢您的帮助!
id | field_1 | field_2
1 | a | 1
2 | b | 1
SELECT id, field_1 FROM table GROUP BY field_2
这将得到id = 1的行,我如何获得具有最大id的行? (我想获得field_1 = b)。这是实现这个最简单的方法吗?当分组sql时选择行
感谢您的帮助!
这种表达不不定义得到的第一行:
SELECT id, field_1
FROM table
GROUP BY field_2
它所做的是从任意行获取值的field2
每个值。任意行可能是第一行,但没有保证。了解这一点,请查看documentation隐藏列。
在MySQL中,你需要一个连接来获得最高id的行。以下是一种方法:
select t.*
from t
where id = (select max(id) from t t2 where t2.field2 = t.field2)
这将为field2的每个值提取最高id的所有行。
谢谢,很好解释。 – lawls
另请参见:http://dev.mysql.com/doc/refman/5.0/en/example-maximum-column-group-row.html –