Php 如果列中有两条相同的记录,请选择“最新记录”

Php 如果列中有两条相同的记录,请选择“最新记录”,php,mysql,select,Php,Mysql,Select,我有一张桌子 **id name status date** 1 john 2 01.01.2010 2 mike 5 04.01.2010 3 john 2 06.01.2010 4 sam 1 08.01.2010 john有两次状态2,我需要从状态为2的表中选择john,mike,但我需要显示最新记录。 我不能使用order by我已经将其用于其他用途。您可以使用order by来满足以下多个条件: ORDER BY date desc, status desc 您可以使用orde

我有一张桌子

**id name status date**

1 john 2 01.01.2010
2 mike 5 04.01.2010
3 john 2 06.01.2010
4 sam  1 08.01.2010
john有两次状态2,我需要从状态为2的表中选择john,mike,但我需要显示最新记录。
我不能使用
order by
我已经将其用于其他用途。

您可以使用
order by
来满足以下多个条件:

ORDER BY date desc, status desc

您可以使用
order by
来满足以下多个条件:

ORDER BY date desc, status desc

您需要使用如下相关子查询:

select * 
from table t1
where t1.date = ( select max( t2.date )
                  from table t2
                  where t1.name = t2.name
                  and t1.status = t2.status )

您需要使用如下相关子查询:

select * 
from table t1
where t1.date = ( select max( t2.date )
                  from table t2
                  where t1.name = t2.name
                  and t1.status = t2.status )

如果不需要ID字段,查询速度会快得多:

SELECT t.name, t.status, max(t.date) date
FROM table t
GROUP BY t.name, t.status
ORDER BY [whatever]

如果您确实需要id,并且该id在记录上的日期较新,则可以将
max(t.id)id
添加到字段列表中。

如果您不需要id字段,查询速度会快得多:

SELECT t.name, t.status, max(t.date) date
FROM table t
GROUP BY t.name, t.status
ORDER BY [whatever]

如果您确实需要id,并且该id在记录中的日期较新,则可以将
max(t.id)id
添加到字段列表中。

您必须使用
order by
,以满足您的需要。幸运的是,您可以对多个列使用
orderby
。您需要使用
orderby
。幸运的是,您可以对多个列使用
orderby