2017-08-15 6 views
1

私はMySQLデータベースとtransactionsテーブルを持っています。過去1時間以内に最後の10件の取引を、昇順にソートして取得したいと思います。設定時間内のMySQLクエリトランザクション

実行中のクエリは次のとおりです。

SELECT TimeStamp, SerialNo 
FROM transactions 
WHERE TimeStamp > NOW() - INTERVAL 1 HOUR 
ORDER BY TimeStamp ASC 
LIMIT 10 

これにより、次のようなトランザクションのリストが生成されます。

20551094 2017-08-15 15:47:12 
20551095 2017-08-15 15:47:15 
20551096 2017-08-15 15:47:38 
20551097 2017-08-15 15:47:51 
20551098 2017-08-15 15:47:56 
20551099 2017-08-15 15:48:23 
20551100 2017-08-15 15:48:23 
20551101 2017-08-15 15:48:26 
20551102 2017-08-15 15:48:29 

私は多く取引私は見ていないよ午後03時48分29秒後にがあることを知っています。

私が取り除くたびに、私は何千ものトランザクションを提示されますが、私は最新の10だけが必要です。

20551421 2017-08-15 16:47:55 
20551422 2017-08-15 16:48:05 
20551423 2017-08-15 16:48:06 
20551424 2017-08-15 16:48:10 
20551425 2017-08-15 16:48:15 
20551426 2017-08-15 16:48:20 
20551427 2017-08-15 16:48:26 
20551428 2017-08-15 16:48:28 
20551429 2017-08-15 16:48:30 
20551430 2017-08-15 16:48:51 

私がこの順序で必要とするのは、自分のウェブサイトにリアルタイムのデータを表示しているからです。

どうすればこの問題を解決できますか?私はここで何かばかげているような気がする!

アドバイスありがとうございます。あなたは10件の最新の取引をしたい場合は

+2

は参照してください:[なぜ私は非常に単純なSQLように私には思える何のためにMCVEを提供する必要がありますクエリ?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple- SQLクエリ) – Strawberry

+0

'LIMIT 10 'が何を意味するのか知っていますか?あなたは '15:48:29 'の後のレコードを見ることはできません。これは10レコード以上を返すことを意味するからです。 –

+0

最新のトランザクションを取得するには、 'ORDER BY timestamp DESC'を使用してください。 – Barmar

答えて

1

で10最新のを取る必要があります。

最後の行を取得するには、ORDER BY TimeStamp DESCが必要です。あなたが昇順にそれらを表示したい場合は、サブクエリを使用し、外側のクエリの順序を逆にすることができます:

SELECT TimeStamp, SerialNo 
FROM (
    SELECT TimeStamp, SerialNo 
    FROM transactions 
    WHERE TimeStamp > NOW() - INTERVAL 1 HOUR 
    ORDER BY TimeStamp DESC 
    LIMIT 10 
) sub 
ORDER BY TimeStamp ASC 
+0

パーフェクト!ありがとう@ポールシュピーゲル – TheOrdinaryGeek

0

あなたのコードは次のようになります。

SELECT TimeStamp, SerialNo 
FROM transactions 
WHERE TimeStamp > NOW() - INTERVAL 1 HOUR 
ORDER BY TimeStamp DESC 
LIMIT 10 

すなわち、あなたのORDER BYは、最新から最古のにタイムスタンプをしたいため、DESCこと、そして私が昇順にソート、過去 時間以内に最後の10件の取引を取得したいと思いますLIMIT 10

+0

あなたはあなたがあなたの質問を受けていないことを望みますか? – Fredster

関連する問題