[英]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.