第一个 使用ORDER BY配合IF语句 第二个 用DATE_ADD函数

1:使用ORDER BY配合IF语句,大于当前时间戳就放在数组前面
就是在对topdate排序的时候,优先级是判断topdate是否大于当前时间戳,如果是,返回0,如果不是,返回1.
->order("if(topdate>=UNIX\_TIMESTAMP(NOW()),0,1),create\_time desc")

2.数据库直接记录天数置顶 用DATE_ADD函数
select * from newstable order by DATE\_ADD(topdate,INTERVAL topday DAY)>=now() desc,create\_time desc;

topday  置顶天数int
topdate 置顶开始时间 datetime
create_time 新闻发布时间 varchar