我有一张表如下。我想运行一个查询,使用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());
然后它显示了重复表的第一行,我应该在查询中修改哪个结果应该显示重复列的最后一行
答案 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;