如何在php mysql中获取重复列的最后一行

时间:2015-11-05 06:36:47

标签: php mysql sql

我有一张表如下。我想运行一个查询,使用php从表中选择数据,如果date column重复,那么我只想占用该日期的最后一行

id     Date          start   end    publish
1   04-Nov-2015     1000    1300    0
4   04-Nov-2015     2100    3500    0
5   05-Nov-2015     1500    3000    0

与下表类似,当我运行查询时,结果应该出现:

4   04-Nov-2015     2100    3500    0
5   05-Nov-2015     1500    3000    0

当我运行查询时

$select = mysql_query("select * from `entry` Group by `date`") or die(mysql_error());

然后它显示了重复表的第一行,我应该在查询中修改哪个结果应该显示重复列的最后一行

5 个答案:

答案 0 :(得分:2)

Select * from (Select * from entry order by date,id desc) x group by x.date

答案 1 :(得分:0)

尝试此查询: -

select * from( select * from entry order by id DESC ) new Group by date

答案 2 :(得分:0)

您可以使用此方法执行此操作:

$select = mysql_query("select * from `entry` Group by `date`" ORDER BY id DESC LIMIT 1) or die(mysql_error());

答案 3 :(得分:0)

尝试内部查询,我不确定以下内容是否完全正如我现在无法测试那样,但是为了获得结果,您必须使用内部查询。内部查询帮助我在我的案例中得到预期的结果。

SELECT *
FROM entry p
WHERE id =
  (SELECT max(id) FROM entry p2
   WHERE p2.id = p.id)
GROUP BY p.date
ORDER BY p.id DESC;

答案 4 :(得分:0)

此查询适用于您:

create TABLE test (id INT PRIMARY KEY, tdate DATE, start INT);

SELECT t1.* FROM test as t1
LEFT JOIN test as t2
  ON (t1.tdate = t2.tdate AND t1.id < t2.id)
WHERE t2.id IS NULL;