我准备设计一个供求信息的表格,里边包含序号(id)(自动增量),发布日期(time),上次更新(last_time)。因为考虑到避免有人不停的重复发布信息来占据前列位置所以设置了last_time这个字段,用户发布信息时lsat_time值与time值相同,更新(记录提前)后last_time取值为当日的日期。排序:
我想先将记录先按照last_time由大到小排序,在last_time值相同的条件下按照id值由大到小排列,以保证晚发布的信息有优先的露面的机会,请问这个sql语句应该如何写?还有,我感觉这种算法还是有一些缺点,请问高人能不能告诉我更好的算法?
我想先将记录先按照last_time由大到小排序,在last_time值相同的条件下按照id值由大到小排列,以保证晚发布的信息有优先的露面的机会,请问这个sql语句应该如何写?还有,我感觉这种算法还是有一些缺点,请问高人能不能告诉我更好的算法?
此外还用过
order by last_time,id descorder by last_time and id desc这几种写法都没有报错,而且查询结果都不相同不过感觉order by last_time desc,id desc只按照其中一个进行了排序而忽略了另外一个,好像在mysql手册上也见过这种写法
select * from (select * from tablename order by last_time desc) as t order by t.id desc
select id,last_time from yourtablename group by last_time order by last_time desc,id desc