消息表,需要把待审核的消息置顶,置顶的待审核消息是通过一个state的状态字段和update_time字段更新时间为空则判断其为待审核数据的,将其按create_time创建时间排序,其他的消息数据直接按照创建时间排序即可,
这里待审核有两种 一种是状态为待审核但是没有更新时间 一种是状态为待审核和但是有更新时间
SQL该怎么写
SELECT *
FROM sys_news
WHERE state = 3 AND update_time IS NULL
ORDER BY create_time DESC
置顶数据
SELECT *
FROM sys_news
WHERE state != 3 || ( state = 3 AND update_time IS NOT NULL)
ORDER BY create_time DESC
非置顶数据
怎么拼接成一条语句
直接select * from 表名 where state = 待审核 order by 创建时间 ;
不行?
照着下面的改一下
select * from 消息表 order by state desc, 更新时间 is NULL desc, 创建时间 desc
置顶的待审核数据 和非置顶的数据两者都要按创建时间排序 这是共同的 但是待审核有两中模式 一种带更新时间的 归为非置顶的数据 一种没有更新时间的 为置顶数据