4

如何使用MySQL獲取最近的日期?我嘗試了max,但沒有得到我想要的結果。我的表看起來像這樣:如何使用MySQL獲取最近的日期

+---------+---------+-----------------------+--------+------------+---------+ 
| Name | idStore | Name     | idItem | date  | price | 
+---------+---------+-----------------------+--------+------------+---------+ 
| walmart |  1 | Red Delicious Apples |  1 | 2011-10-22 | 0.98000 | 
| walmart |  1 | Red Delicious Apples |  1 | 2011-10-28 | 0.98000 | 
| walmart |  1 | Red Delicious Apples |  1 | 2011-10-28 | 0.98000 | 
| walmart |  1 | Red Delicious Apples |  1 | 2011-11-22 | 0.98000 | 
| walmart |  1 | Honeycrisp Apples  |  2 | 2011-10-22 | 1.98000 | 
| walmart |  1 | Sonya Apples   |  3 | 2011-10-22 | 2.88000 | 
| walmart |  1 | Gold Delicious Apples |  4 | 2011-10-22 | 0.98000 | 
| walmart |  1 | Sweet Tango Apples |  5 | 2011-10-22 | 2.48000 | 
| walmart |  1 | Granny Smith Apples |  6 | 2011-10-22 | 1.28000 | 
| walmart |  1 | Fugi Apples   |  7 | 2011-10-22 | 1.38000 | 
+---------+---------+-----------------------+--------+------------+---------+ 

我想這個表:

+---------+---------+-----------------------+--------+------------+---------+ 
| Name | idStore | Name     | idItem | date  | price | 
+---------+---------+-----------------------+--------+------------+---------+ 
| walmart |  1 | Red Delicious Apples |  1 | 2011-11-22 | 0.98000 | 
| walmart |  1 | Honeycrisp Apples  |  2 | 2011-10-22 | 1.98000 | 
| walmart |  1 | Sonya Apples   |  3 | 2011-10-22 | 2.88000 | 
| walmart |  1 | Gold Delicious Apples |  4 | 2011-10-22 | 0.98000 | 
| walmart |  1 | Sweet Tango Apples |  5 | 2011-10-22 | 2.48000 | 
| walmart |  1 | Granny Smith Apples |  6 | 2011-10-22 | 1.28000 | 
| walmart |  1 | Fugi Apples   |  7 | 2011-10-22 | 1.38000 | 
+---------+---------+-----------------------+--------+------------+---------+ 

我有很難搞清楚了這一點。謝謝!

+1

你是不是有一個很難搞清楚了這一點唯一的一個。我建議你通過給出一些你試圖得到結果的代碼來詳細說明,所以我們可以看到它爲什麼不起作用。 – kasimir

回答

-1

把這個末ORDER BY date DESC

因此,使它看起來像這樣:

SELECT * FROM `tablename` ORDER BY `date` DESC 

在上面的SQL語句使用DISTINCT(Name)GROUP BY Name,就會使一個項目彈出一次。

+1

但他也只想看到每個idItem一行。提示:GROUP BY? – Konerak

+0

然後看到[此鏈接](http://stackoverflow.com/questions/341737/mysql-changing-the-query-to-be-distinct-on-just-1-column)爲不同的值 – abhinav

+0

-1 the順序不是他所需要的;這仍然會保留重複的日期。 – Eljakim

3

您可以通過使用組:

select NameStore, idStore, Name, idItem, max(date) date, price 
from table 
group by NameStore, idStore, Name, idItem, price 
+0

謝謝你,那非常快。 – user1061392

-1

您必須使用GROUP BY條款是這樣的:

SELECT Name, idStore, Name, idItem, date, price 
FROM mytable 
GROUP BY idItem 
ORDER BY date DESC, idItem DESC; 

更改使用DESC或ASC順序方向。您可以通過閱讀文檔瞭解更多信息。

相關問題