-1

これらのテーブルにユーザー入力 (コメント) を保存します。

NEWS_COMMENTS
- id
- comment

PRODUCT_COMMENTS
- id
- comment
- product_id

Web サイトに履歴機能を追加したいと考えていました。お気に入り;

-Someone commented on XX news.
-Someone commented on YY product.
-Someone commented on ZZ product.

あなたはその問題に気づきました。タイムスタンプや日付は保存しないので、どちらのコメントが先かわかりません。ニュース コメントまたは製品コメントのいずれかです。

MySQL には過去 24 時間の入力を選択する機能がありますか? 例えば、

NEWS_COMMENTS には、過去 24 時間で 3 つの新しいエントリがあります。PRODUCT_COMMENTS には、過去 24 時間で 5 件の新しいエントリがあります。

クエリは、これらの 8 つのエントリを、エントリの日付/タイムスタンプ順に並べて選択する必要があります。

現在のページを変更せずにこれを行うことはできますか? クエリを提供できますか?

4

3 に答える 3

3

timestamptypeとオプションを指定して列を追加するだけですDEFAULT CURRENT_TIMESTAMP。おそらく、コードに他の変更を加える必要はありません。MySQL は、行を挿入するときにタイムスタンプが自動的に入力されるように魔法をかけてくれます。

次に、単純なクエリを使用して、過去 24 時間の行を取得できます。

SELECT col1, col2, ..., coln
FROM yourtable
WHERE yourtimestampcol > NOW() - interval 24 hour
于 2012-05-09T21:21:56.663 に答える
1
SELECT * FROM  table WHERE timeStamp > NOW() - INTERVAL 24 HOUR

timestampタイプとそのオープンを含む列を追加することで、DEFAULT CURRENT_TIMESTAMPこれが探しているものになり、明らかにテーブル名とタイムスタンプ列が変更されます。

于 2012-05-09T21:24:06.297 に答える
0

「MySQL には過去 24 時間の入力を選択する機能がありますか?」

現在のデータベース構造では、いいえ。それはまったく可能ですか?はい。t imestampsを使用する必要があります。新しいコメントをまだ受け取っていないということは、達成しようとしていることのプロセス全体を考えていないということです。

基本的に、cooment_timestampフィールド (または他の名前) をタイムスタンプ タイプとしてデータベースに追加し、ON UPDATE句 :を追加する必要がありますON UPDATE CURRENT_TIMESTAMP

SELECT次に、タイムスタンプ情報を使用して、必要なデータをクエリ ( ) できます。

SELECT * FROM  `COMMENT_TABLE` WHERE comment_timetamp > NOW() - INTERVAL 24 HOUR
于 2012-05-09T21:25:50.250 に答える