Mysql 如果存在相同的列值,则仅选择id值最高的行
如何从一个表中选择all,如果有相同的列名值,则只选择id值最大的行,因此如果有这样的表:Mysql 如果存在相同的列值,则仅选择id值最高的行,mysql,sql,Mysql,Sql,如何从一个表中选择all,如果有相同的列名值,则只选择id值最大的行,因此如果有这样的表: id name age country ---+------+---+------- 1 bob 24 UK 2 john 48 USA 3 janet 72 USSR 4 bob 96 Ukraine 它将只选择id最高的“bob”,因此结果将返回: id name age country ---+------+---+
id name age country
---+------+---+-------
1 bob 24 UK
2 john 48 USA
3 janet 72 USSR
4 bob 96 Ukraine
它将只选择id最高的“bob”,因此结果将返回:
id name age country
---+------+---+-------
2 john 48 USA
3 janet 72 USSR
4 bob 96 Ukraine
谢谢。您可以使用not exists子查询筛选出具有相同名称和更大id的行:
select *
from People p1
where not exists
(
select *
from People p2
where p1.Name = p2.Name
and p2.Id > p1.Id
)
您可以使用子查询计算每个名称的最大ID,然后返回与子查询返回的ID匹配的所有行:
SELECT *
FROM People
WHERE id IN (SELECT MAX(id) FROM People GROUP BY Name)
请看小提琴。您可以这样做:
Select Table_1.* from table_1 inner join (
Select Max(ID) as ID from Table_1 Group by ID) x On Table.Id on x.ID
请尝试此查询
select * from table_name where ID in(select MAX(ID) from table_name group by name)
我想你想得到最大年龄+1你实际上不需要名字,在按名字从人物组中选择MAXid中的id就可以了fine@Andomar哦对因为它是一个id,它已经是唯一的了。。。我会更新我的答案,谢谢: