[英]how to show one record per day order by id?
我有這個小腳本,每天都有一個智慧。
所以我有三列。
Id wisdom timestamp
1 wisdon 1 4/1/2012
2 wisdon 2 4/1/2012
3 wisdon 3 4/2/2012
我想每天獲取一個智慧的數組
我環顧了你的網站,但不幸的是我找不到類似於我想要的東西。
我也得到了這段代碼
$sql = mysql_query("SELECT DISTINCT id FROM day_table group by timestamp");
但這也行不通。 有任何想法嗎?
是否可以制作24小時更新智慧日期的計數器? 請給我一些幫助。
您可以創建另一個名為wisdom_of_day
表
該表將包含以下列,id,wisdom_id,date
基本上每天你都可以從智慧表中隨機選擇一個智慧並將其插入智慧日表。 您還可以向日期列添加約束,使其不同。 重要的是它是一個日期列而不是時間戳,因為您不關心時間。
然后,您可以根據日期查詢來檢索當天的智慧。
我可能會錯誤地閱讀您的問題而您只想為每天選擇一個智慧,但您想要顯示多天,並且您希望從表中獲取數據。
如果是這樣,您的查詢不起作用的原因是因為您按時間戳分組,其中包括日期和時間。 您需要按日期對其進行分組,以便根據需要進行分組。
這是一個將按日分組的查詢。 這僅在您具有時間戳字段且未在int列上存儲unix timstamp時才有效。
select id, wisdom, date(timestamp) date_only from day_table group by date_only order by date_only asc;
嗯,我注意到你的時間戳值是某種日期格式,可能是一個字符串? 如果是這樣,上述查詢可能無效。
自1970年以來首次計算天數
SELECT DATEDIFF(CURDATE(), '1970-01-01')
然后在RAND中插入此號碼,例如:
SELECT * FROM table ORDER BY RAND(15767) LIMIT 1;
以數字為參數的蘭德是確定性的。
完整查詢:
SELECT * FROM table ORDER BY RAND((SELECT DATEDIFF(CURDATE(), '1970-01-01'))) LIMIT 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.