Php SQL按时间戳排序和按id分组
我一起使用php、mysql和html来显示一个表。 但我想按时间戳对项目进行排序,并将具有相同id的项目分组在一起。 例如: 未排序的表:Php SQL按时间戳排序和按id分组,php,sql,Php,Sql,我一起使用php、mysql和html来显示一个表。 但我想按时间戳对项目进行排序,并将具有相同id的项目分组在一起。 例如: 未排序的表: timestamp id name description 14:02 2 Hans Is very nice! 12:01 3 Jürgen Is very bad! 10:03 2 Hans
timestamp id name description
14:02 2 Hans Is very nice!
12:01 3 Jürgen Is very bad!
10:03 2 Hans Again good.
11:08 6 Anna BAD!
06:09 11 Peter Good.
timestamp id name description
06:09 11 Peter Good.
10:03 2 Hans Again good.
14:02 2 Hans Is very nice!
11:08 6 Anna BAD!
12:01 3 Jürgen Is very bad!
timestamp id name description
06:09 11 Peter Good.
10:03 2 Hans Again good.
11:08 6 Anna BAD!
12:01 3 Jürgen Is very bad!
14:02 2 Hans Is very nice!
右排序表:
timestamp id name description
14:02 2 Hans Is very nice!
12:01 3 Jürgen Is very bad!
10:03 2 Hans Again good.
11:08 6 Anna BAD!
06:09 11 Peter Good.
timestamp id name description
06:09 11 Peter Good.
10:03 2 Hans Again good.
14:02 2 Hans Is very nice!
11:08 6 Anna BAD!
12:01 3 Jürgen Is very bad!
timestamp id name description
06:09 11 Peter Good.
10:03 2 Hans Again good.
11:08 6 Anna BAD!
12:01 3 Jürgen Is very bad!
14:02 2 Hans Is very nice!
排序错误的表:
timestamp id name description
14:02 2 Hans Is very nice!
12:01 3 Jürgen Is very bad!
10:03 2 Hans Again good.
11:08 6 Anna BAD!
06:09 11 Peter Good.
timestamp id name description
06:09 11 Peter Good.
10:03 2 Hans Again good.
14:02 2 Hans Is very nice!
11:08 6 Anna BAD!
12:01 3 Jürgen Is very bad!
timestamp id name description
06:09 11 Peter Good.
10:03 2 Hans Again good.
11:08 6 Anna BAD!
12:01 3 Jürgen Is very bad!
14:02 2 Hans Is very nice!
我认为必须有一个内部连接:首先找到具有最早时间戳的项。然后查看是否有其他具有相同ID的项目:如果是,则必须将其放置在具有最早时间戳的项目旁边 试试这个:
子查询将返回具有NewTimeStamp的temp列,该列对于相同的id列值将是相同的
SELECT
X.timestamp,
X.Id,
X.name,
X.description
FROM
(
SELECT TMain.timestamp,TMain.id,TMain.name,TMain.description
(
CASE WHEN ((SELECT COUNT(1) FROM @tblTest T WHERE T.Id=TMain.Id))>0
THEN (SELECT TOP(1) timestamp FROM @tblTest T WHERE T.Id=TMain.Id ORDER BY timestamp)
ELSE timestamp END
) AS NewTimeStamp FROM @tblTest TMain
)X
ORDER BY X.NewTimeStamp,X.timestamp
如果您对同时使用MySQL和PHP的答案感兴趣,那么这将实现您想要的 MySQL PHP
您当前的查询是什么样子的?我想使用SELECT*…我们需要的不仅仅是这些。你的意思是你目前没有任何疑问,对吗?你已经试过什么了?确切地说,什么对您不起作用?请添加您的查询以使用此SELECT*FROM table GROUP BY id ORDER BY timestamp我可以知道否决投票的原因吗?因为这是错误的。只有在主排序列中多次出现相同值时,才会使用次排序列。是,这是错误的!我必须测试它!除非他不想要时间戳:按从低到高的值对时间戳进行排序。他不需要id:它将订购id列请检查更新的解决方案获取我的UV纯粹是为了努力和tanacity@RiggsFolly谢谢: