簡體   English   中英

SQL查詢按日期排序

[英]SQL query group by Date shuffle

我有一個查詢

select id, item, date producer from table

結果是這樣的:

id         item            producer            date
1          apple            A                  2013-10-26
2          pear             A                  2013-10-26
3          peach            A                  2013-10-26
4          orange           B                  2013-10-26
5          strawberry       B                  2013-10-27
6          melon            B                  2013-10-27
7          apple2           A                  2013-10-27
8          orange3          A                  2013-10-27

我需要將這些數據“按DATE DESC順序排序”,然后得到如下所示:

item            producer
orange3          A
melon            B
apple2           A
strawberry       B
pear             A
orange           B
apple            A
peach            A
melon            B

我不想這樣顯示:

全部項目...全部項目...或將今天添加的內容與昨天添加的內容混洗...在我的示例中,我不想在“ orange3”之前顯示“ orange”

我的解決方案(但很慢)

Select * from table where date = $date order by rand;
Select * from table where date = $date -1 order by rand;
select * from table where date = $date -2 order by rand;

(這只是一個概念,不能使用此方法將$ date減1)

查看以下內容是否為您解決了問題:

SELECT * 
FROM `table` 
ORDER BY `date` DESC, RAND()

我只是嘗試過,它似乎可以滿足我的要求。

編輯

如果要保留“隨機播放”,則添加一個名為rnd DOUBLE類型的列,請執行

UPDATE `table` SET rnd = RAND()

然后在您的SELECT語句中使用

.... ORDER BY `date` DESC, `rnd`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM