鍍金池/ 問答/數(shù)據(jù)庫/ 一個SQL查詢語句的構(gòu)造問題

一個SQL查詢語句的構(gòu)造問題

是這樣的,我有一張表,名為 list ,本次操作用到的字段有 updated_at 、 grab。
updated_at 是最后更新時間。
grab 代表是否是抓取的信息。值為 1 代表是抓取的,為 0 代表是本站用戶發(fā)表的。


現(xiàn)在我要取最新的數(shù)據(jù)展示給用戶,但是我希望在本站發(fā)布的信息排名靠前一些。策略是 grab 為 1 的信息和十天前的本站發(fā)布的信息排名是一樣的。
請問這個 sql 語句如何寫?


ps:結(jié)果集中 grab = 1 和 grab = 0 是合并到一個集合的,結(jié)果集不能分開。比如本站用戶5天前發(fā)布的比最新抓取的排名高,但是最新抓取的比11天前本地發(fā)布的排名高,并且12天前本站發(fā)布的要比5天前抓取的排名高,而不是把本地和抓取的分開排名。

回答
編輯回答
有你在

select * from

select * from list where grab = 1 and  day(now()) - day(updated_at) >10 as g1 order by  updated_at
union
select * from list where grab = 0 as g2 order by updated_at
2018年3月4日 00:31
編輯回答
爆扎

可以把幾種數(shù)據(jù)分別查詢,再用union all合并起來。

2018年4月7日 21:18
編輯回答
嫑吢丕

按照排序規(guī)則計算一個排序碼的字段,然后按照這個字段進(jìn)行排序,如:

SELECT t.*, 
CASE when grab = 1 and day(now()) - day(updated_at) >10 then 1
     when grab = 0 and day(now()) - day(updated_at) >5  then 2
END sort_code
from T
order by sort_code
2018年8月5日 20:12