2017-11-17 5 views
0

私はこのような価値があります。mysqlから最新ではないデータを選択できません

id website time 
1 aaa.com 11.10 
2 bbb.com 11.10 
3 ccc.com 11.10 
4 aaa.com 11.11 
5 bbb.com 11.11 
6 ccc.com 11.11 

テーブル内に最新でないデータを選択します。そのはず 。

4 aaa.com 11.11 
5 bbb.com 11.11 
6 ccc.com 11.11 

私はそれはなかれDESCとASCを示し、このよう

"SELECT * FROM name GROUP BY website ORDER BY id DESC"; 

を問い合わせます。

1 aaa.com 11.10 
2 bbb.com 11.10 
3 ccc.com 11.10 

同じデータで最新の値を選択するにはどうすればよいですか?

答えて

2

は、各ウェブサイトのための最新のレコードを見つけ、サブクエリへの参加:あなたは、いくつかのテキスト形式で明らかにあなたの時間を保存している

SELECT t1.* 
FROM yourTable t1 
INNER JOIN 
(
    SELECT website, MAX(time) AS max_time 
    FROM yourTable 
    GROUP BY website 
) t2 
    ON t1.website = t2.website AND 
     t1.time = t2.max_time; 

。これは望ましくないので、代わりに日付時刻を保存する方がよいでしょう。時間の幅が常に同じ場合(サンプルデータから伝える)、私のクエリはうまくいくはずです。

関連する問題