Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果存在相同的列值,则仅选择id值最高的行_Mysql_Sql - Fatal编程技术网

Mysql 如果存在相同的列值,则仅选择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 ---+------+---+

如何从一个表中选择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
 ---+------+---+------- 
   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,它已经是唯一的了。。。我会更新我的答案,谢谢: